【问题标题】:Finding area of hysteretic curve (a plot) in Matlab在 Matlab 中查找滞后曲线的面积(图)
【发布时间】:2016-03-01 16:05:44
【问题描述】:

我在 Matlab 中绘制了(fy 对 uy)的滞后曲线。我想找到情节的面积。我知道 trapz 命令。但是,就我而言,我没有两个特定的曲线方程。我应该怎么做?

此外,曲线的某些部分位于负值区域。如何确保这些区域不会相互取消?

uy =
   1.0e-03 *
   [-0.2238
   -0.3616
   -0.4817
   -0.5642
   -0.5962
   -0.5752
   -0.5048
   -0.3945
   -0.2603
   -0.1222
   -0.0020
    0.0807
    0.1129
    0.0918
    0.0213
   -0.0889
   -0.2232
   -0.3615
   -0.4819
   -0.5648
   -0.5972
   -0.5760
   -0.5055
   -0.3952
   -0.2607]



fy =
   -0.0000
   -1.4886
   -2.7506
   -3.5939
   -3.8900
   -3.5939
   -2.7506
   -1.4886
    0.0000
    1.4886
    2.7506
    3.5939
    3.8900
    3.5939
    2.7506
    1.4886
   -0.0000
   -1.4886
   -2.7506
   -3.5939
   -3.8900
   -3.5939
   -2.7506
   -1.4886
    0.0000

【问题讨论】:

标签: matlab matlab-figure matlab-guide area


【解决方案1】:

使用函数 polyarea(X, Y)。要检查您是否正在考虑正确的多边形,请使用函数 fill(X, Y, color) 来绘制您正在评估的多边形。

编辑:
在您的情况下,使用这些函数的问题是您绕着曲线走了 1.5 次,只是第二次的值略有不同。解决此问题的一种方法是在第一轮削减数据。你可以做到:
1) 收集这些数据时只做一轮
2)通过排序你的数据,这样你就可以绕过曲线一次

对于您在此处发送的数据的特殊情况,您必须在第 17 个值处停止。通过这样做,我获得了正确的多边形

【讨论】:

  • 我刚刚尝试过,确实如此。请注意重复(如果有)或尝试通过对点进行排序然后添加一个额外的点来“关闭”多边形,该点等于第一个点,但在最后。如果我明天有时间,我可以发布我的结果。
  • 查看第一篇文章的编辑版本。它以这种方式工作!
  • 如果这解决了您的问题,请接受答案。这样其他用户就会知道它有效。谢谢你:)
  • 我是堆栈溢出的新手。应该如何接受答案?
  • 点击我的主要回复上的绿色复选标记。谢谢你:)
猜你喜欢
  • 2014-04-20
  • 1970-01-01
  • 2012-01-29
  • 1970-01-01
  • 2012-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多