【问题标题】:Plotting x-axis and y-axis with different (indep) limits in Matlab在 Matlab 中绘制具有不同(独立)限制的 x 轴和 y 轴
【发布时间】:2019-04-08 10:03:30
【问题描述】:

我开发了一个 Android 应用程序,将每次扫描设置为 1 分钟,在此期间传感器随机收集许多读数。我只想绘制一次扫描的一个传感器数据,如下所示: 扫描时间以秒为单位手动放置,在 x 轴上仅持续 1 分钟(从 1:60 秒开始)。而从传感器收集的随机读数向量(有时达到数百个值)在 y 轴上。

我如何在 Matlab 中做到这一点?

我尝试使用此代码,但出现错误。 “向量的长度必须相同。”

这是我的代码:

x1 = linspace(0,60);
plot(x1,vector1,'o-r',x1,vector2,'+-k','LineWidth',lw,'MarkerSize',msz);
xlabel('Time (s)');
ylabel('sensor readings')

【问题讨论】:

  • 每次阅读,你有对应的时间记录吗?如果是这样,您可以创建一个与vector1 长度相同的时间向量
  • 我做了以下,我每次扫描都收集读数,每次扫描时间为 1 分钟(即 x 轴为 60 秒)。在每次扫描期间,应用程序会收集大量随机读数(有时达到数百个),这应该是 y 轴上的图。我想在 x 轴上从 (0~60 time(s) ) 绘制。而y轴上收集的读数的随机长度的向量。我怎么能做到这一点。
  • 如邦华所问,你知道每次读数的时间点吗?如果不是,是否以固定的时间间隔读取读数?请edit你的问题澄清一下,不要在cmets中添加信息。
  • 我编辑了我的问题以澄清。
  • 只需hold on 并绘制 60 次(循环),每个 x 轴值一次?

标签: matlab plot time-series


【解决方案1】:

为了匹配值的数量,您必须修改 linspace 的输入:

x1 = linspace(0,60,length(vector1));

这样您将自动为您的 x 轴向量获取正确数量的条目。 您基本上告诉linspace 创建一个范围从060 的向量,其中包含length(vector1) 条目,以便它与您的数据集的长度相匹配。

请注意,如果您的第二个数据集与第一个数据集的条目数量不同,您将需要创建一个不同的 x 轴向量,以分别匹配其值的数量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-16
    • 1970-01-01
    • 2021-05-30
    • 2013-07-09
    • 2017-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多