MATLAB: Plot surface from a stored handle (handle of a surface) in .mat file

handleMATLABplotsurface

Hi everyone. It's possible to plot with a handles stored in mat file. For example:
% Points for any surface
[x,y,z] = peaks(50);
% Getting handle, plotting surface and save in object.mat
handle = surf(x,y,z);
save('object.mat','handle')
Now read handle from the object.mat file:
sobf = load('object.mat');
sobf = sobf.handle;
% Any way to plot directly without extract X,Y or ZData

Best Answer

  • How about this?
    set(sobf, 'Parent', gca)
    If you want to save the view, gridlines, ticks, anything else about the axes rather than the plot, you could save the axes as well:
    % Points for any surface
    [x,y,z] = peaks(50);
    % Getting handle, plotting surface and save in object.mat
    ax = axes;
    handle = surf(ax, x,y,z);
    save('axes.mat', 'ax')
    save('object.mat','handle')
    delete(gcf);
    sobf = load('object.mat');
    hax = load('axes.mat');
    sobf = sobf.handle;
    ax = hax.ax;
    set(sobf, 'Parent', ax)
    set(ax, 'Parent', gcf);