How do I access AppDesigner variables in a function that I write and call?

I am calling a function that I wrote from a GUI I designed with Appdesigner. I want to use many variables such as app.* in that function. I would rather not define a huge number of input variables for the function. I have used global variables in the past, use of global variables is not recommended by Matlab and teh global declaration gets a forbidding red underline. Is there an easy and compact way to access all the app.* variables functions called by the GUI designed in appdesigner?

 Respuesta aceptada

So, if I call the function with "app" as an argument, as if "app" is a structure, I should be able to refer to all the variables that are defined in the Appdesigner code as app.var1, app.var2.... etc within the function?

3 comentarios

Yes, although app is actually a MATLAB object not a structure, but you can still get it's properties using the dot notation as you describe.
Thanks, that is easy enough for what I want to do now. But, it looks like I should understand MATLAB object better than I do now since the implication is that the structure properties are a subset of object properties, and I might want to use the full features of objects in the future.
You can also call any public methods of app, so if your app had a public function, myAppFun
function result = myAppFun(app,x)
...
end
then inside of your function, myFun that takes app as an argument you could call it using for example
function myFun(app,x)
y = app.myAppFun(x)

Iniciar sesión para comentar.

Más respuestas (1)

Jon
Jon el 27 de En. de 2022
Editada: Jon el 27 de En. de 2022
So I'm understanding that you have written a function and want to call it from within your appdesigner app. You then want this function to have access to the variables within the app. If so, I think you can get what you want simply by passing app as an argument to your function.

Categorías

Más información sobre Develop Apps Using App Designer en Centro de ayuda y File Exchange.

Productos

Versión

R2021b

Preguntada:

el 27 de En. de 2022

Comentada:

Jon
el 28 de En. de 2022

Community Treasure Hunt

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

Start Hunting!

Translated by