I want to open saved .fig files and hold on the same plot. But it always open on a new figure and ignores the hold on function.
Below is code Im using-
for i=1:length(percent)
figaddress = strcat(num2str(percent(i)),'_percent\Pushover_LS.fig');
P_fig(i)= openfig(figaddress,'visible');
hold on
grid off
end

 Accepted Answer

Just found the solution of opening figure and then plotting on the same plot
  1. first open the figure using hgload
  2. Copyobj is used to paste on a newly defined subplot with the same axis property
for i=1:length(percent)
figaddress = strcat(num2str(percent(i)),'_percent\Pushover_LS.fig');
P_fig(i)= hgload(figaddress); % open figure but make sure you don't close them
end
figure()
h=subplot(1,1,1); %define subplot of 1x1
for i=1:length(percent)
copyobj(allchild(get(P_fig(i),'CurrentAxes')),h) %copyobj of each figure on h subplot
end
title('Curve')

More Answers (1)

DGM
DGM on 28 Jun 2022

1 vote

openfig opens figures
hold toggles properties of axes
It doesn't make sense to try to put a figure inside an axes. Perhaps you meant to use the 'reuse' option for openfig() instead?

3 Comments

You cannot merge figures by using hold. You would need to openfig and locate the axes and copyobj the contents of the axes to the output axes. And somehow you would have to decide what the axes limits and tick positions and tick labels and xlabel and ylabel and colormap should be.
The axis limits, tick positions, labels and legends are all same. Only the data is different.
Can I have an example?

Sign in to comment.

Products

Release

R2019b

Tags

Community Treasure Hunt

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

Start Hunting!