MATLAB: Saving Plots in a loop

fullfilesaveas

Hi Am trying to plot a 132 files .. the problem when I use contour plot I got the error "Error using saveas (line 58) Invalid handle." Where this error is not appearing when I use surf / mesh or any other plot? Can you help ?
Path = '........./Trialwithname/Figures';
for i = 1:132
c1 = [D{i}];
a1 = table2array(c1);
c2 = reshape(a1,99,99);
hplot = surf(x,y,c2);
saveas(hplot,fullfile(Path, sprintf('fig%02d.jpg', i)));
end

Best Answer

  • The outputs to contour is different from axes handles given by surf. You have to find the figure handle and feed that to the saveas function. Example:
    Path = '........./Trialwithname/Figures';
    for i = 1:132
    c1 = [D{i}];
    a1 = table2array(c1);
    c2 = reshape(a1,99,99);
    if i == 1
    [~, hc] = contour(x, y, c2);
    haxes = get(hc, 'parent');
    hplot = get(haxes, 'parent');
    else
    contour(haxes, x, y, c2);
    end
    %hplot = surf(x,y,c2);
    saveas(hplot,fullfile(Path, sprintf('fig%02d.jpg', i)));
    end