【问题标题】:Comparing two given data using plot function of matlab使用matlab的绘图功能比较两个给定的数据
【发布时间】:2016-11-06 21:45:24
【问题描述】:

我从我的前辈那里收到了一个结果,如果发生故障,它基本上会发出警报。数据如下:

Alarm = [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 3 ...
    3 3 3 3 3 3 3 4 4 4 4 4 4 5 5 5 5 5 5 6 6 6 6 6 6 5 4 4 4 4 4 4 3 3 ...
    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0];
alarm_test = [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
    0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 1 0 ...
    0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1];

现在我想将两者都绘制在同一张图中。当我这样做时,你知道我的结果是 0 或 1,但是对于上面给定的代码,最高可以是 5,所以我想将我的警报与给定的警报值同步。例如 alarm_test 1 将是 Alarm = 3 ,同样地,它可以同步绘图。谁能帮我解决这个问题?

我得到以下图表:

但我想要这样的图表:

【问题讨论】:

  • “我想在同一张图中绘制两者” - 哪一个? Alarm 什么?
  • 我添加了两个警报值。请看看!!
  • 我想在同一个图中比较两者的图表,使其看起来有意义。但是如果我按原样绘制这两个值,它看起来很奇怪,正如您在图中看到的那样
  • 如果您将alarm_test 中的值相加,您会得到 30,但在您的插图中,它似乎应该更“缓慢”地累积。你能更清楚地解释这个值代表什么吗?它们应该如何同步?
  • 这只是一个测试两个算法,其中一个是早期检测故障。在 Alarm 中是另一个算法给出的输出,而 Alarm_test 是我的输出(由我的算法开发)。如果您如图所示,您会很容易看到我的算法比给定算法更早地检测系统故障。但问题是每次给定的“警报”值增加值例如“3 3 3 3 3 3 3 3 3”是相同的,但一旦达到“4 4 4 4 4 4”,它就会增加级别。我也想做同样的事情,但在我的警报中,我有 1 或 0 不是那样的。我想要这样的图表!

标签: arrays matlab sorting plot matlab-figure


【解决方案1】:

嗯,你在问什么非常不清楚,所以也许一些视觉示例会有所帮助...... 你说你的alarm_test 只是 0 或 1,但你希望它增加(就像你画的图中一样)。所以这里是第一个建议来累积alarm_test中的值:

plot(Alarm)
hold on
plot(cumsum(alarm_test))
hold off

现在,这距离您要寻找的东西有多远?在什么方面?

【讨论】:

  • 它又看起来很奇怪。如果我们知道我们收到警报的时间然后像“警报”一样绘制,是否可以正确绘制?
  • 你说的正确是什么意思?如果你希望它是驼峰形的,你必须定义它开始减少的地方。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-25
  • 1970-01-01
相关资源
最近更新 更多