plot not saveable, if it displays multiple functions
14 ビュー (過去 30 日間)
古いコメントを表示
Hey there,
I am relatively new to Matlab and would greatly appreciate your help!
I am trying to save a plot of data I have collected (I have added an example of my script below). This works if I only plot one string of data, but as soon as I add a second one, the error
Conversion to matlab.graphics.chart.primitive.Line from cell is not possible.
Error in saveas (line 75)
h(n) = hP;
appears. Do I need to somehow configurate the plot, so that it is saveable?
My script:
%%load stored data
matfile1 = 'filedirectory1';
load(matfile1);
x1 = X;
y1 = Y;
matfile2 = 'filedirectory2';
load(matfile2);
x2 = X;
y2 = Y;
%%create Multiplot
image = plot(x1,y1,'b.',x2,y2,'r.');
%%save plot
saveas(image, 'filedirectory/image.png', 'png' );
0 件のコメント
採用された回答
Jan
2018 年 6 月 19 日
plot replies the handles of the line object, but saveas needs the handle of the figure:
FigH = figure; % Before the code
...
saveas(FigH, 'filedirectory/image.png', 'png' );
0 件のコメント
その他の回答 (2 件)
Guillaume
2018 年 6 月 19 日
編集済み: Guillaume
2018 年 6 月 19 日
image = plot(...
plot does not return an image so your variable name is very misleading. It returns Line objects. I'm suprised that saveas works when you pass it a scalar Line object. Clearly it doesn't work with an array of Line objects but it shouldn't even work with a scalar. saveas expects a figure handle.
saveas(gcf, 'filedirectory/image.png', 'png' );
And for clarity you should change the plot line to:
hline = plot(...
although since you don't use the output, you could dispence with the variable altogether.
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Printing and Saving についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!