set property of graphicsobject in array before R2014b

1 view (last 30 days)
I have want to make my GUI compatible <R2014b (see https://de.mathworks.com/help/matlab/graphics_transition/graphics-handles-are-now-objects-not-doubles.html) Specifically, my question is how to write the following using set(object,value) since "." (dot) notation is not allowed...
handles.panel.children(4).position(3) = some value

Accepted Answer

Jan
Jan on 30 Nov 2017
Edited: Jan on 30 Nov 2017
pos = get(handles.panel.children(4), 'Position');
pos(3) = some value;
set(handles.panel.children(4), 'Position', pos);
Maybe it is easier to use this tool: FEX: DotNot, but I have not tested this yet.
  3 Comments
Jan
Jan on 1 Dec 2017
As you can imagine, I do not know what is stored in "handles.panel". If this is a handles of a uipanel, you can apply the method I have showed you already instead of waiting, that someone else does it for you.
children = get(handles.panel, 'Children');
pos = get(children(4), 'Position');
pos(3) = some value;
set(children(4), 'Position', pos);
Do you see, how the dot-notation and get/set are related?
H.Prop = Value
% is equivalent to:
set(H, 'Prop', Value);
Value = H.Prop;
% is equivalent to
Value = get(H, 'Prop');
Manuel
Manuel on 1 Dec 2017
...just wanted to point out, that the way it is written above it does not work. Thanks for your effort! much appreciated!

Sign in to comment.

More Answers (0)

Categories

Find more on Graphics Object Programming in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!