【问题标题】:How to save a Line Array as figure in Matlab如何在 Matlab 中将线阵列保存为图形
【发布时间】:2017-05-06 08:01:44
【问题描述】:

我有以下数组:

x = [1,2,3;,4,5,6];
y = [0,1,2];

我想绘制 X 与 Y 的每一行。通常,我对 X 进行了一个 for 循环并单独绘制。我意识到我们可以写

plot(x,y)

它会自动执行相同的操作。一个问题是 Matlab 说这是一个线阵列。如何应用 saveas 命令?我试过了,我得到了以下错误:

Conversion to matlab.graphics.chart.primitive.Line from cell is not possible.

Error in saveas (line 75)
                h(n) = hP;

请帮忙。

谢谢

【问题讨论】:

  • 如果你想绘制像“f(x)=y”这样的函数,这是不可能的,因为每个y都有两个x值。但你可以试试“f(x)=y”,即“plot(y,x)”。
  • @nassertahani :你可以两者都做。 @mle0312 : 你能告诉我们你使用saveas 的方式吗?

标签: arrays matlab plot save figure


【解决方案1】:

您可以根据您的目的重新设置 y 并避免 for 循环......就像下面的代码

x = [1 2 3 ; 4 5 6];           %XData (2-by-3)

y = [ 0 , 1 , 2];              %Ydata (1-by-3)

nrx = size(x , 2);             % number of x rows

y_new = repmat(y, nrx , 1 );   % repeat y along row direction

所以输出将如下所示

y_new = repmat(y, nrx , 1 )

y_new =

 0     1     2
 0     1     2

最后绘制您的数据(请记住,您必须转置数据,因为 MATLAB 会绘制每一列)

 plot(x.',y_new.')     % plot(transpose(x),transpose(y))

输出会像这张图片

我希望这对你有帮助,对不起我的英语

【讨论】:

    猜你喜欢
    • 2014-04-18
    • 1970-01-01
    • 2011-03-15
    • 2011-06-15
    • 2021-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-10
    相关资源
    最近更新 更多