2012-03-09 51 views
2

我想使用quad作为极限列表而没有for循环。作为一个基本的例子quad with vector limit

T=[1 2 3]; 
[email protected](x)x.^2 
quad(0,T(1),f) 

计算我所需要的,但我想保存四(0,T(1)中,f)四(0,T(2)中,f)四(0,T(3 ),f)作为一个向量。可能这是一件基本的事情,但我找不到任何解决方案。 我很感激所有帮助,

回答

2

使用arrayfun

T=[1 2 3]; 
[email protected](x)x.^2 
Q = arrayfun(@(x) quad(f,0,x), T); 

*请注意,您的文章有论点quad不正确的顺序。

+1

我喜欢'arrayfun',并且使用它很多 - 但请记住,在像这样的情况下(功能很复杂),您所做的只是隐藏for循环。 – Edric 2012-03-09 16:59:14

1

这只是这里的品种。你可以试试这个Matlab Central entry。正如发布中所述,这是我见过的唯一的矢量化数值方法。