Finally, the solution was to load the mat files with the variables I need and plot again the figure in the UIAxes I wanted.
Info
This question is closed. Reopen it to edit or answer.
How to open a .fig (previously saved) in already existing UIaxes_2, UIAxes_3?
1 view (last 30 days)
Show older comments
I am saving a figure with app designer using the following code after the image is displaying.
The fig5 is initially plotted in app.UIAxes_3.
%
fileName5 = fullfile([Foldersavefig], ['Velocity_N_' num2str(ik_part,'00%.0f'),'_p']);
copiedAxesc5 = copyobj([c5, app.UIAxes_3], fig5);
set(fig5, 'CreateFcn', 'set(gcbo,''Visible'',''on'')');
f5 = gcf;
fa5 = gca;
f5.Resize = 'on';
fa5.Units = 'normalized'
fa5.OuterPosition = [0 0 0.8 0.8];
faf5= gcf;
set(gcf,'Visible','off')
savefig(faf5, [fileName5 '.fig']);
%
Then, I want to upload it again in the app when pushing a button and display it directly in the app.UIAxes_3.
I currently do it using openfig() function but the figure pop up first outside (in UIAxes, see picture at right) the app before to be displayed in the UIAxes_3 (using copyobj()).
cla(app.UIAxes_3);
newfig5 = openfig([fileName5 '.fig'], 'invisible');
ax5 = findobj(newfig5,'Type','Axes');
copyobj(ax5.Children, app.UIAxes_3);
% I add here the colorbar
caxis(app.UIAxes_3,[0 VELO_MAX])
c5 = colorbar(app.UIAxes_3);
colormap(app.UIAxes_3,hot)
c5.Label.String = '\alpha_{//}';
c5.Limits = [0 VELO_MAX];
hold(app.UIAxes_3,'off')
delete(newfig5)
I want to display the figure (.fig) in the UIAxes_3 directly and don't have it poping up before outside.
One option is to save the plot as .png and use imread and imshow (as followed) but it is pixelized.
file1 = imread(fullname1);
image1=im2double(file1);
imshow(image1, 'parent', app.UIAxes_3)
How to
Or how to display the .fig in the specific UIAxes_3 and prevent the figure to pop up?
1 Comment
Answers (0)
This question is closed.
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!