【发布时间】:2018-10-28 09:59:03
【问题描述】:
我正在尝试使用trapz 来查找曲线下的区域。
我的x 数据表示日期时间,我的y 数据表示加速度为f(x)。加速度计读数采用 SI 形式。
x (HH:mm:ss.SSS) 内的示例数据:
'01:06:48.330'
'01:06:48.352'
'01:06:48.374'
y 内的示例数据(加速度计值 * 9.81):
8.73750256159470
8.59619296907904
8.63520263017352
当我输入以下命令时(使用整个数据数组):
velocity = trapz(x,y);
我得到一个如下所示的持续时间数组:
velocity =
duration
00:00:13
我不太确定我理解 00:00:13 的含义。当我计算速度时,我希望看到类似 9.81 m/s 或 5m/s 的数据。我是在滥用函数还是应该将持续时间数组转换为不同的对象类型?
【问题讨论】:
-
MATLAB 没有“意识”你的 y 轴是一个加速度,只是在
trapz计算期间你有一些单位日期时间乘以标量......没有一些例子让我们重现,很难告诉您 13 秒与您的预期结果有何关系。 -
@Wolfie 明白了。当然,我用一个小例子更新了这个问题。那么得到实际速度可能需要 9.81 * 13 秒?
-
请注意,一个更好的示例将具有 2 个特征:1。 它实际上给出了您也引用的结果(使用这三个值不会产生 13 秒)。 2. 我们实际上可以复制和粘贴代码来运行和调整它。
x=datetime({'00:00','00:01','00:02'},'inputformat','HH:mm'); y=[1,2,4];之类的结果trapz持续时间为 4 分 30 秒。创建像这样的简单示例也可以帮助您自己,因为它可以帮助您更好地理解您可以用手计算的简单数字发生了什么。 -
@Wolfie 我同意。当我知道问题所在时,我通常会做得更好。这对我来说只是一个曲线球。感谢您的帮助。
标签: matlab numerical-integration