一个向量在另一个向量上的整合

Integration of one vector over another

我有两个相同大小的向量,我想制作第三个相同大小的向量,但第三个向量的值是积分的。

我在 origin 中做了这个,它很简单,但我需要在 matlab 中。我将 post 示例 :

A       B           C(integrated B over A)
0       0           0
0,041   1812,282    37,15178
0,129   2186,023    213,0772
0,25    2318,906    485,62541
0,407   2141,382    835,75801
0,553   1969,284    1135,83663
0,618   1926,069    1262,4356
0,857   2149,071    1749,41483
1,034   2302,972    2143,42064
1,071   2115,559    2225,16346
1,136   2173,948    2364,57244
1,198   2301,871    2503,32283
1,262   975,241     2608,19041
1,343   0           2647,68767

到目前为止的 Matlab 工作:

我试过了

C=trapz(B,A)

并得到结果

C =

-2.6481e+03

最后一个数据点没问题,但我需要一个数据向量。请参阅 origin 集成 中的示例。

问题是: 如何在 A 上对 B 求积分并得到积分值的向量?

C = cumtrapz(A,B)

会做。


data = [
0       0           0
0.041   1812.282    37.15178
0.129   2186.023    213.0772
0.25    2318.906    485.62541
0.407   2141.382    835.75801
0.553   1969.284    1135.83663
0.618   1926.069    1262.4356
0.857   2149.071    1749.41483
1.034   2302.972    2143.42064
1.071   2115.559    2225.16346
1.136   2173.948    2364.57244
1.198   2301.871    2503.32283
1.262   975.241     2608.19041
1.343   0           2647.68767]

A = data(:,1);
B = data(:,2);

C = cumtrapz(A,B)

返回:

C = 
0
37.1517810000000
213.077201000000
485.625405500000
835.758013500000
1135.83663150000
1262.43560400000
1749.41483400000
2143.42063950000
2225.16346300000
2364.57244050000
2503.32282950000
2608.19041350000
2647.68767400000