Refer to field of a struct using input variable

3 Ansichten (letzte 30 Tage)
Ali Ghader
Ali Ghader am 19 Apr. 2018
Kommentiert: Ali Ghader am 19 Apr. 2018

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

Akzeptierte Antwort

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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Environment and Settings finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by