How to add imagesc plot to an app?
30 views (last 30 days)
Show older comments
Hi all,
I am trying to put an image created from the imagesc function to display on an Matlab app.
I am struggling with that and am not sure what to do next.
I have already looked at and tried :
- https://ch.mathworks.com/matlabcentral/answers/283215-insert-image-in-appdesigner-gui
- https://ch.mathworks.com/matlabcentral/answers/405741-how-to-use-image-sc-in-application-designer-appdesigner
First, I am not sure if I should be hosting the image as as UIAxes or as an Image. I am generating the plot programaticaly from Matlab.
Let's say that I try to host it as UIAxes component ( have several plot areas in my app). That component is called UIAxes and is inside a panel. Then what I do is to put the following inside a function which I then call from the startup Function:
app.UIAxes = imagesc(R);
where R is a matrix with numbers.
I get the following error
Error using app2/startupFcn (line 98)
Error setting property 'UIAxes' of class 'app2'. Value must be of type matlab.ui.control.UIAxes or be convertible to matlab.ui.control.UIAxes.
Would anybody have an idea of what I can do here?
2 Comments
DGM
on 6 Apr 2022
Edited: DGM
on 6 Apr 2022
I don't really ever do much with the app stuff, so I'm not going to make an answer out of this. Generally, image objects, like any plot object, are children of axes objects. So instead of assigning like that, you'd call image() with the handle of the axes that is to be it's put in:
imageobjecthandle = imagesc(axeshandle,myimage);
How you manage the axes and image handles is up to you.
Brian
on 16 Jan 2023
How did the answer from Jakub below work out? Where there any other details you discovered?
(I'm presently having the same problem tryiing to do exactly the same thing.)
Thx.
Answers (1)
Jakub Devera
on 7 Apr 2022
imagesc(ax,___) creates the image in the axes specified by ax instead of in the current axes (gca). Specify the axes as the first input argument.
So you can write
imagesc(app.UIAxes, R);
or save it to a handle if you want to work with it later
app.ImageHandle = imagesc(app.UIAxes, R);
but you will have to define ImageHandle in properties of your app.
See Also
Categories
Find more on Interactive Control and Callbacks in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!