【发布时间】:2012-10-12 08:24:50
【问题描述】:
quad 函数遇到一个奇怪的问题。
我使用quad计算简单积分,它工作了10到20次,然后Matlab出现以下错误:
Error using quad (line 75)
The integrand function must return an output vector of the same length as the input vector.
yteor(k) = quad(@(q)(exp(-(q).^2).*q.^2/(k.^2+1)), 0, 1);
这里 q 和 k 是标量。 我不知道出了什么问题以及为什么它在几个小时前就起作用了。
编辑
这是我的代码
for k=1:100,
xteor(k)=step*k;
yteor(k)=quad(@(q)(exp(-(q).^2).*q.^2/((step.*k+1).^2)),0,1);
end plot(xteor,yteor,'r');
【问题讨论】:
-
错误信息似乎很不言自明。你能显示你的代码吗? (理想情况下,工作和不工作)
-
整个代码太大,所以我将发送整合和绘制图形的部分:
-
for k=1:100 xteor(k)=step*k; yteor(k)=quad(@(q)(exp(-(q).^2).*q.^2/((step.*k+1).^2)),0,1);结束情节(xteor,yteor,'r');
-
Matlab 认为我给他发了一个向量,但我给他发了一个标量。
-
您可以编辑您的问题(帖子下方的灰色链接),并尝试使用 Markdown 格式。最后,通常可以看到提供完整的工作示例(此处添加
step、xteor和yteorinitialisation。
标签: matlab integration integrate