Compartir datos dentro de apps de App Designer
Utilizar propiedades es la mejor forma de compartir datos dentro de una app, ya que las propiedades son accesibles a todas las funciones y callbacks de una app. Todos los componentes de la IU son propiedades, por lo que puede utilizar esta sintaxis para acceder a y actualizar componentes de la IU dentro de los callbacks:
app.Component.Property
Por ejemplo, estos comandos obtienen y establecen la propiedad Value
de un indicador de aguja. En este caso, el nombre del indicador de aguja es PressureGauge
.
x = app.PressureGauge.Value; % Get the gauge value app.PressureGauge.Value = 50; % Set the gauge value to 50
Sin embargo, si quiere compartir un resultado intermedio o datos a los que tienen que acceder múltiples callbacks, defina una propiedad pública o privada para guardar los datos. Las propiedades públicas son accesibles tanto dentro como fuera de la app, mientras que las propiedades privadas solo son accesibles dentro de la app.
Definir una propiedad
Code View proporciona algunas formas distintas de crear una propiedad:
Amplíe el menú desplegable desde la mitad inferior del botón Property en la pestaña Editor. Seleccione Private Property o Public Property.
Haga clic en la pestaña Properties en el Code Browser, amplíe la lista desplegable en el botón
y seleccione Private Property o Public Property.
Después de seleccionar una opción para crear una propiedad, App Designer añade una definición y un comentario a un bloque properties
.
properties (Access = public) Property % Description end
El bloque properties
es editable, por lo que puede cambiar el nombre de la propiedad y editar el comentario para describirla. Por ejemplo, esta propiedad guarda un valor para el coste promedio:
properties (Access = public) X % Average cost end
Si el código necesita acceder a un valor de propiedad al iniciar la app, puede inicializar su valor en el bloque properties
o en el callback startupFcn
.
properties (Access = public) X = 5; % Average cost end
Para restringir los tipos de valores que puede almacenar una propiedad, asocie un tipo de datos con la propiedad en la definición de la propiedad. Por ejemplo, este código requiere que los valores que se asignen a X
deben ser de un tipo compatible con double
, y cualquier valor asignado se almacena como double
.
properties (Access = public) X double % Average cost end
Acceder a una propiedad
Una vez definida una propiedad, puede acceder y establecer el valor de la propiedad en cualquier parte del código de la app utilizando la sintaxis app.
PropertyName
.
y = app.X % Get the value of X app.X = 5; % Set the value of X
Ejemplo: Compartir datos de gráficas y una selección de la lista desplegable
Esta app muestra cómo compartir datos en una propiedad privada y una lista desplegable. Tiene una propiedad privada llamada Z
que guarda datos de gráficas. La función de callback para el campo de edición actualiza Z
cuando el usuario cambia el tamaño de la muestra. La función de callback para el botón Update Plot obtiene el valor de Z
y la selección del mapa de color para actualizar la gráfica.