app designer: how to index through multiple UIAxes

11 views (last 30 days)
  1. There are 5 UIAxes objects in an App added using the Design View
  2. Component names are: app.UIAxes_1, app.UIAxes_2....
  3. How do I index through each Axes component to update the plots?
Have tried:
app.plotHandles = gobjects([app.UIAxes_1,app.UIAxes_2,app.UIAxes_3,app.UIAxes_4,app.UIAxes_5])
for i=1:5
plot(app.plotHandles(i),x(i),y(i));
end
Unable to resolve the name 'app.UIAxes_1'.
This has the error : 'Error using gobjects Inputs must be scalar numeric or a vector of array dimensions'

Accepted Answer

Walter Roberson
Walter Roberson on 21 Sep 2022
app.plotHandles = gobjects([app.UIAxes_1,app.UIAxes_2,app.UIAxes_3,app.UIAxes_4,app.UIAxes_5])
The gobjects() function only accepts size-related arguments -- the number of objects to create or the dimensions of the object array.
You should use
app.plotHandles = [app.UIAxes_1, app.UIAxes_2, app.UIAxes_3, app.UIAxes_4, app.UIAxes_5];

More Answers (1)

Eric Delgado
Eric Delgado on 21 Sep 2022
Edited: Eric Delgado on 21 Sep 2022
Hey... just put in the startup of your app the code below.
app.plotHandles = findall(app.UIFigure, 'Type', 'axes');
  1 Comment
Walter Roberson
Walter Roberson on 21 Sep 2022
There is a risk that the order might not be what is needed.
There is a risk that there are other uiaxes as well.
There is a risk that there are standard axes that are not uiaxes.

Sign in to comment.

Categories

Find more on Develop Apps Using App Designer in Help Center and File Exchange

Products


Release

R2022a

Community Treasure Hunt

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

Start Hunting!