Refer to field of a struct using input variable

3 vues (au cours des 30 derniers jours)
Ali Ghader
Ali Ghader le 19 Avr 2018
Commenté : Ali Ghader le 19 Avr 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
  1 commentaire
Stephen23
Stephen23 le 19 Avr 2018
"Is there a way in matlab to refer to a field of a struct ... using an input variable ?"
Of course:

Connectez-vous pour commenter.

Réponse acceptée

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

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Migrate GUIDE Apps dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by