【发布时间】:2015-03-12 17:23:02
【问题描述】:
我这里有一些代码说明了我想在 matlab 中执行的一些积分的嵌套性质。当我运行以下代码时,我得到了错误
Error using .*
Matrix dimensions must agree.
Error in fun1/integrand (line 7)
f = x.^2.*t;
似乎我现在设置的方式不允许integral 函数的矢量化输出。我该怎么做才能让我的代码运行?我已经在下面评论了我想要这些功能做什么。
我的代码如下:
%主脚本:
z = linspace(0,10,10);
I = zeros(10,1);
for i = 1:10
I(i) = fun2(z(i));
end
%函数 1 在单独的文件中:
function I = fun1(x)
I = integral(@integrand,-1,1);
function f = integrand(t)
f = x.^2.*t;
end
end
%Function 2 在单独的文件中:
function I = fun2(z)
I = integral2(@integrand,-1,1,-1,1);
function f = integrand(x,y)
f = z.*fun1(x).*y; // here fun1 should return the value for all x that is swept through by integral2 during its call.
end
end
【问题讨论】:
-
您的错误信息有问题。您只使用
.*,因此您不会收到错误消息Error using *。请确认您复制了正确的代码和错误消息。 -
抱歉,已编辑。有一个小错误,但现在我所有的操作都应该是元素明智的。
-
请再次检查。 “内部矩阵尺寸必须一致。”不是由
.*引起的异常 -
对不起,你是对的,我没有复制整个错误信息。它应该和我现在在 matlab 提示符上看到的一样!
-
我正在尝试了解您想要实现的内容。这是您尝试实施的公式吗? bit.ly/18B5itX 那么你应该使用
integral3