24小时热门版块排行榜    

查看: 751  |  回复: 13
当前主题已经存档。
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

wang1234568089

金虫 (初入文坛)

[交流] 【求助】关于句柄函数的问题

请问一下如何生成一个含有句柄函数的矩阵?以及怎么样调出这个矩阵的句柄函数?

举一个例子:

1、

function y=f1(x,a)

T=[1 2 3];

y=[];

for i=1:Ty

y=[y T(i).*x*a];%目的是输出一个矩阵[x*a   2*x*a  3*x*a]把这个矩阵中的元素作为句柄函数输出

end

2、

下面还要编写一个函数将上述矩阵中的元素x*a   2*x*a  3*x*a分别在【0,1】 上对a求积分得到一个新的矩阵【0.5*x   x   1.5*x】     

3、

再编写一个矩阵将这个矩阵中的所有元素求和,这个我知道。               



关键在于

1、

第二步如何将第一步形成的矩阵中的元素进行编写来获得第二步中的那个矩阵。

[ Last edited by sunxiao on 2009-3-8 at 12:36 ]
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wang1234568089

金虫 (初入文坛)

你看我下面的程序可以吗?

function y=ff(x,a)
T=[1 2 3];TG=[0.1 0.2 0.3];
Q=[];
H=[];
for i=1:length(T)
    Q=[Q x.*quad(@(a) a.*T(i),0,1)];
    H=[H (Q(i)-TG(i)).^2];
end
y=sum(H);
我把上面的这个函数程序带入遗传算法工具箱,能够完全进行求解。
但是当我把 Q=[Q x.*quad(@(a) a.*T(i),0,1)];这个语句换成 Q=[Q x.*quad(@(a) f(x,a),0,1)];就不可以了。当然f(x,a)是我自己编写的一个函数如下:
function y=f(x,a)
T=[1 2 3];
y=exp(x./a.*T(i).*exp(-a./T(i)));
请教楼上的怎么解决这个问题,谢谢了。

[ Last edited by wang1234568089 on 2009-3-14 at 13:42 ]
9楼2009-03-14 13:41:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 14 个回答

fspdlh

金虫 (正式写手)

★ ★
sunxiao(金币+2,VIP+0):欢迎参与,加分鼓励 3-4 00:37
建议你看看kron这个函数
[x*a   2*x*a  3*x*a]可以写成
kron(a.*(1:3),x)
2楼2009-03-03 16:45:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wang1234568089

金虫 (初入文坛)

你说的那个函数可以在循环里面应用吗?因为我说的【1 2  3】等是举一个例子,我是要引用一个数组中的数。
另外那个函数能否在别的函数中把句柄函数引用出来?
另外,我是想知道关于句柄函数和矩阵的关系的一些知识,包括句柄函数能否形成矩阵,假如能形成矩阵的话怎么调用?

[ Last edited by wang1234568089 on 2009-3-5 at 13:24 ]
3楼2009-03-05 13:05:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fspdlh

金虫 (正式写手)

★ ★
coldwind042(金币+2,VIP+0):欢迎多指导!学习啦! 3-5 19:33
句柄函数我没搞过,不过我觉得你这问题不难,不用想那么多,另外,尽量不用循环,MATLAB是矩阵化的语言,用循环就大才小用了,速度会慢很多的
for i=1:Ty
y=[y T(i).*x*a];
end
以上语句等同于kron(T,x*a),用不着循环,且速度会快很多
4楼2009-03-05 18:40:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见