Refer to field of a struct using input variable

3 visualizaciones (últimos 30 días)
Ali Ghader
Ali Ghader el 19 de Abr. de 2018
Comentada: Ali Ghader el 19 de Abr. de 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

Respuesta aceptada

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

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Environment and Settings en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by