Tengo una variable en el espacio de trabajo de MATLAB y quiero pasar a esta variable a una función en mi GUI.

¿Cómo lograr esta tarea?

2 Comentarios

  1. 5

    Puede utilizar la función EVALIN en su interfaz gráfica de usuario para obtener el valor de una variable de la base área de trabajo. En el ejemplo siguiente se extrae el valor de la variable A en la base área de trabajo y coloca ese valor en la variable local B:

    B = evalin('base','A');

    Usted podría, por ejemplo, tiene un cuadro de texto modificable en su interfaz gráfica de usuario que permite al usuario introducir el nombre de una variable a la importación de la base área de trabajo. Uno de sus GUI funciones, a continuación, lea la cadena en el cuadro de texto modificable y el intento de recuperar esa variable de la base área de trabajo para utilizar en algunos de cálculo:

    varName = get(hEditText,'String');    %# Get the string value from the uicontrol
                                          %#   object with handle hEditText
    try                                   %# Make an attempt to...
      varValue = evalin('base',varName);  %#   get the value from the base workspace
    catch exception                       %# Catch the exception if the above fails
      error(['Variable ''' varName ...    %# Throw an error
             ''' doesn''t exist in workspace.']);
    end
    • El uso de la base área de trabajo como «contenedor de la variable’, una especie de ‘global’ de variable de almacenamiento, puede ser tentador. Pero elimina todas las ventajas del ámbito de las variables! Cada pieza de código se puede cambiar una variable en la base área de trabajo. Este estilo de programación que hace que los errores muy difíciles de rastrear.
    • Estoy de acuerdo en que hay mucho mejores maneras de manejar las variables en una interfaz gráfica de usuario, como el uso de anidadas funciones de devolución de llamada para mantener los valores de las variables locales. Sin embargo, el OP es específicamente preguntando cómo conseguir un espacio de trabajo variable en una interfaz gráfica de usuario, y esta es una de las formas.
    • A su derecha, mi comentario pertenece a la pregunta y no a su respuesta.
  2. 1

    Puede utilizar SETAPPDATA (en la principal workpsace) y GETAPPDATA (GUI) funciones.

    Si la variable es someMatrix

    setappdata(0,'someMatrix',someMatrix) % in the main workspace
    
    someMatrix = getappdata(0,'someMatrix') % in GUI

Dejar respuesta

Please enter your comment!
Please enter your name here