【问题标题】:Matlab: How to compute an integral of a dataset when the function of the data is unknownMatlab:当数据的功能未知时如何计算数据集的积分
【发布时间】:2014-11-27 20:14:13
【问题描述】:

在 Matlab 中,如果给定一个时间序列数据集,其中第二列值是第一列时间的函数,并且我需要对第二列值进行积分,我该怎么做?一个函数?

【问题讨论】:

    标签: matlab


    【解决方案1】:

    你为什么不直接使用 trapz 函数。这是在 Octave 中,但在使用梯形方法的 Matlab 中应该是相同的。

    octave-3.6.2.exe:1> x=1:5 x =

    1 2 3 4 5

    octave-3.6.2.exe:2> y=x.*x y =

    1    4    9   16   25
    

    octave-3.6.2.exe:3> 面积=trapz(x,y) 面积 = 42

    【讨论】:

    • 您的建议似乎效果不错,而且很容易执行。
    • 我很高兴它对你有用。另请查看辛普森规则。 “Z = SIMPS(X,Y) 使用辛普森法则计算 Y 关于 X 的积分。”
    【解决方案2】:

    在 MATLAB 中你可以使用函数

     cumtrapz(time,data) 
    

    这是累积梯形积分。 2 个输入是具有相同长度的向量。 通过这种方式,您可以获得例如对加速度进行积分的速度。 输出是一个与输入长度相同的向量。

    编辑

    你也可以看看我在这里回复的Numerical integration using Simpson's Rule on discrete data

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 2015-03-24
      • 2013-01-04
      • 1970-01-01
      • 2013-09-24
      • 2011-08-17
      • 2020-02-28
      相关资源
      最近更新 更多