xiaoniu 发表于 2011-12-3 11:03:41

请教:trapz积分的问题

我有两个数组: X(1960000,31), Y(1960000,31)

做如下的积分:
Y(1,:) 对 X(1,:)进行积分
Y(2,:) 对 X(2,:)进行积分
:::::
Y(1960000,:) 对 X(1960000,:)进行积分

我用如下方法求的,通过循环。但是因为数组比较大,所以非常的慢。有没有什么方法可以一次性处理这种积分?或者其它的函数?
for i=1:size(X,1)
   Integral(i,1) = trapz(X(i,:),Y(i,:));
end

非常感谢!

rocwoods 发表于 2011-12-3 12:13:52

Integral预分配内存试试看。
Integral = zeros(1960000,1);
for i=1:size(X,1)
   Integral(i,1) = trapz(X(i,:),Y(i,:));
end

xiaoniu 发表于 2011-12-3 14:04:24

非常感谢版主,预分配内存果然速度快了很多很多。
再次感谢!
页: [1]
查看完整版本: 请教:trapz积分的问题