我有矢量数据rdata
和rho
。每个都是641 x 1向量,rho
是rdata
的函数。我想将rho(rdata)* 2 * pi * rdata从0整合到rmax。然而,当我执行以下操作时,我会得到" NaN"为了结果。我错误地设置了吗?有没有更好的方法在Matlab中数字化整合矢量数据?
% turn data into function
fr = @(r)interp1(rdata,rho,r);
% integrate
h = integral(@(r)fr(r)*2*pi*r,0,35.8,'ArrayValued',true);
更新
我发现了trapz
函数并尝试了以下
dens = 2*pi*rho.*rdata;
trapz(rdata,dens)
并获得2.5左右的值,比我预期的低约两个数量级。我是否错误地实施了它?如果重要的话,rdata
的间距不均匀。