plot not saveable, if it displays multiple functions

13 vues (au cours des 30 derniers jours)
Larissa Billig
Larissa Billig le 19 Juin 2018
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' );

Réponse acceptée

Jan
Jan le 19 Juin 2018
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' );

Plus de réponses (2)

Guillaume
Guillaume le 19 Juin 2018
Modifié(e) : Guillaume le 19 Juin 2018
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.

Larissa Billig
Larissa Billig le 19 Juin 2018
Thanks for your help!

Catégories

En savoir plus sur Printing and Saving dans Help Center et File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by