是否可以将矢量限制用于任何matlab集成功能?由于程序的速度,我必须避免for循环。能不能给我一个关于做什么的线索
k=0:5
f=@(x)x^2
quad(f,k,k+1)
如果有人需要,我找到了我的问题的答案:quad with vector limit
答案 0 :(得分:1)
根据我对quad
函数的经验,我会尝试给你一个答案。
从这开始:
k=0:5;
f=@(x) x.^2;
注意f
定义(不正确)和我的(正确)之间的差异。
如果您只想在f
范围内整合(0,5)
,可以轻松致电
quad(f,k(1),k(end))
如果没有句柄功能,您可以通过使用trapz
以不同的方式获得相同的结果:
x = 0:5;
y = x.^2;
trapz(x,y)
相反,如果您想在小范围[k(i),k(i+1)]
中执行逐步整合,则可以输入
arrayfun(@(ii) quad(f,k(ii),k(ii+1)),1:numel(k)-1)
为了方便起见,请注意
sum(arrayfun(@(ii) quad(f,k(ii),k(ii+1)),1:numel(k)-1)) == quad(f,k(1),k(end))
我希望这会有所帮助。