【问题标题】:Matlab: Making errorbar() draw uninterrupted lines for NaN values in matrixMatlab:使errorbar()为矩阵中的NaN值绘制不间断的线
【发布时间】:2014-07-02 22:46:50
【问题描述】:

我有一个数据矩阵 M 和一个误差矩阵 E,我想用误差条针对自变量 x 进行绘制。我还想要同一行中点之间的线。 M 或 E 中的一列对应一个 x 值,因此可以使用

errorbar(x, M, E, 'o-')

我缺少一些数据点,这些数据点的值是 NaN。 errorbar() 应该忽略这些,但是在同一行中最接近两个点的点之间的线(由'-' 选项产生的线)被破坏了。

我看到了一些使用向量而不是矩阵的不同解决方案,包括 ~any(isnan(y),1) 和 L=~(isnan(x)|isnan(y)),但这些会导致类似的问题

Error using errorbar
X, Y and error bars must all be the same length

我找不到矩阵的解决方案,有什么想法吗?

【问题讨论】:

    标签: matlab matrix plot nan


    【解决方案1】:

    因为我建议在这样的循环中绘制的每一行的缺失数据点可能都不相同(假设绘图数据是矩阵的列):

    for i = 1 : size(M, 2)
      data = M(:, i);
      good = not(isnan(data));
      xi = x(good);
      data = data(good);
      error = E(good, i);
      errorbar(xi, data, error, 'o-');
      hold on;
    end
    

    【讨论】:

    • 谢谢!我希望有更简单的方法,但也许没有。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-24
    • 1970-01-01
    • 1970-01-01
    • 2018-03-06
    • 2014-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多