Refer to field of a struct using input variable

4 views (last 30 days)

Hello everyone,

Is there a way in matlab to refer to a field of a struct or (any variable) using an input variable ?

Consider I have to functions: Main and Change_Color; and there is a variable app.LampVS.Color that I want to set its value using Change_Color, is there a way to refer to LampVS using a handle for example :

  • Please not that the variable app can be accessed by both functions
 function main(app)
            Change_Lamp(app,'LampVS','green');
 end
 function Change_Lamp(app,Lamp,Color)
            switch Color
                case 'red'
                    Color_Matrix = [1.00 0.00 0.00];
                case 'green'
                    Color_Matrix = [0.04 1.00 0.04];
                case 'orange'
                    Color_Matrix = [1.00 0.65 0.00];
            end
            app. *(@Lamp)?*.Color = Color_Matrix;
   end

Accepted Answer

Walter Roberson
Walter Roberson on 19 Apr 2018
app.(Color).Color = Color_Matrix;
  2 Comments
Guillaume
Guillaume on 19 Apr 2018
This should of course read
app.(Lamp).Color = Color_Matrix;
Ali Ghader
Ali Ghader on 19 Apr 2018
OMG! XD I searched for half an hour about that and all it needed were two parentheses. Thanks a lot

Sign in to comment.

More Answers (0)

Categories

Find more on Migrate GUIDE Apps 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!