如何在 Matlab 中将线阵列保存为图形

Posted

技术标签:

【中文标题】如何在 Matlab 中将线阵列保存为图形【英文标题】:How to save a Line Array as figure in 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 的方式吗? 【参考方案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))

输出会像这张图片

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

【讨论】:

以上是关于如何在 Matlab 中将线阵列保存为图形的主要内容,如果未能解决你的问题,请参考以下文章

如何将图像上的绘图线保存为 .mat 文件

如何在循环的每次迭代中将新图形保存为 png

如何使用 saveas() 将 MATLAB 图形保存为 JPEG 而图像不严重?

如何在Swift中将2D数组变量分配给大的浮动矩阵?

如何在matlab中将句柄对象层次结构保存到磁盘

matlab步长如何设置