【问题标题】:MATLAB - scatter plot of a vector by a matrix?MATLAB - 矩阵的向量散点图?
【发布时间】:2017-02-10 04:13:28
【问题描述】:

我对 Matlab 很陌生。我正在尝试绘制X,其中X 是一个100x1 向量,而Y 是一个100x10 矩阵。我希望结果是X vs 10 个不同的Y 值都在同一个图中,每列的颜色不同。我能想到绘制该矩阵的每一列的唯一方法是使用hold 命令,但随后我必须将其拆分,以便单独获取每一列。有没有简单的方法可以做到这一点?

【问题讨论】:

    标签: matlab plot matlab-figure scatter-plot


    【解决方案1】:

    使用repmatX 扩展为与Y 相同的大小。尝试使用plot(X,Y) 绘制它们,如果看起来很奇怪,请转置每一个 (plot(X',Y'))。

    您可以使用 linespec 参数来选择线条样式、标记样式等。例如,plot(X,Y,'.') 将指示每个顶点处的一个点,没有连接线。

    【讨论】:

    • 啊,这确实有效!谢谢!为什么你必须用 repmat 这样做,而看起来应该有一种更直观的方式来做到这一点 - 散点图似乎不适合只为 y 取向量。
    • 之所以有效,是因为当您有两个矩阵时,它会绘制每一列与另一列的图。如果您只是按原样使用plot(X,Y,'.') 而没有 repmat,会发生什么?
    【解决方案2】:

    您不需要使用repmat,只需使用plot 而不是scatter

    plot(X,Y,'o')
    

    这是一个例子:

    % some arbitrary data:
    X = linspace(-2*pi,2*pi,100).'; % size(X) = 100 1
    Y = bsxfun(@plus,sin(X),rand(100,10)); % size(Y) = 100 10
    % you only need the next line:
    plot(X,Y,'o')
    legend('show')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-04
      相关资源
      最近更新 更多