Possible MatLab versions incompatibility

The attached function was developed using MatLab 2011. Line 104 in the attached function Image.m :
% Set parent object in list of arguments to be passed to the image function
*imageargs = [imageargs 'Parent' handles.main_axes];*
triggers an error message that reads: “ Error using matlab.graphics.axis.Axes/horzcat Conversion to matlab.graphics.axis.Axes from cell is not possible.
We changed it as follows:
*imageargs = [imageargs 'Parent' double(handles.main_axes)];*
Now function EImage works. The results of its elaborations are displayed on a graphic window that, unluckily, cannot be resized. We suspect something about the window 'Parent' is wrong after our patch. We would greatly appreciate knowing the right correction to apply.
Thank you in advance. Sincerely, Maura Monville

5 Comments

Stephen23
Stephen23 on 16 Sep 2016
Edited: Stephen23 on 16 Sep 2016
@Maura Monville: what MATLAB version are you trying to run the code on?
Thank you. I removed the cast to double and inserted the "{}". Its behaviour has not changed from the way it behaves casting that argument to double. The results of EImage elaborations pops up on the screen in a new window but again such a window canNOT be resized. How come ? Best regards, maura
I am trying to run function EImage with MatLab 2016. Itried both 2016a and 2016b. I got the same behaviour. Thank you
We would also need the .fig to test with.
Template "EImage.fig" is not resizable. I cannot figure out why. Windows entitled respectively "Percent Difference Map" and "Gamma Map" are instances of "EImage.fig". I think they inherit the properties and attributed from "EImage.fig". Therefore they are themselves unresizable .. I might be wrong ... I would like the following:
  • To generate the graphic template "Eimage.fig" in such a way so as it is resizable. I believe its instances will be as well.
  • To learn how to hook up new analytical functionalities to window "Image Comparison" (what should I read ?)
  • To learn how to draw a ROI on the displayed image in window "Image Compare" (what should I read ?)
Thank you so much. Kind regards, maura

Sign in to comment.

Answers (1)

I assume this array gets interpreted somewhere later on so you should probably just add
{ handles.main_axes }
to the array rather than converting to double, since it appears to be a cell array anyway, then just interpret it as such when you use it.

3 Comments

Thank you. I removed the cast to double and inserted the "{}". Its behaviour has not changed from the way it behaves casting that argument to double. The results of EImage elaborations pops up on the screen in a new window but again such a window canNOT be resized. How come ? Best regards, maura
It doesn't seem like your problem is related to the parent - if it is correctly set to be the right axes then this should not affect the resizeability of the window containing those axes.
I did not implemented the GUI myself. I just developed the current analytical functions stand alone. The guy who implemented the GUI linked my functions to the GUI so as they can be called by pushing the proper GUI buttons. Sorry. I do not have an answer about the axes. I have attached the MatLab code and the raphic template (.fig). Maybe you can be more specific .... ? Thank you. Regards, maura

Sign in to comment.

Categories

Find more on Creating, Deleting, and Querying Graphics Objects in Help Center and File Exchange

Asked:

on 16 Sep 2016

Commented:

on 17 Sep 2016

Community Treasure Hunt

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

Start Hunting!