Il modo più semplice per creare una GUI è usare il tool GUIDE di MatLab che si apre con il comando "guide".
Nelle risposte a questa domanda
http://www.iprogrammatori.it/forum-programmazione/matlab-simulink/creazione-una-gui-dati-diversi-script-t24301.html#p8535928 puoi trovare alcune informazioni sull'utilizzo del tool.
Puoi trovare altre (e più dettagliate) informazioni ed esempi qui:
http://it.mathworks.com/help/matlab/gui-building-basics.html
Per quanto riguarda lo script che hai inserito, purtroppo ho una versione di MatLab più "vecchia" della tua e non posso eseguire il codice che hai inserito.
Ad ogni modo, le funzioni "setmap" e "surfzlim" sono associate, rispettivamente, alle callback del pooup menu e dello slider:
popup = uicontrol('Style', 'popup',...
'String', {'parula','jet','hsv','hot','cool','gray'},...
'Position', [20 340 100 50],...
'Callback',@setmap);
sld = uicontrol('Style', 'slider',...
'Min',1,'Max',50,'Value',41,...
'Position', [400 20 120 20],...
'Callback', @surfzlim);
e vengono eseguite quando l'utente seleziona un elemento dal popup menu o modifica lo slider.
Per passare uno o più parametri alla funzione che genera la GUI puoi modificare la definizione della funzione introducendo il parametro "
varargin"
function myui(varargin)
Così facendo si può invocare la funzione con un numero "qualunque" di parametri, es.:
myui(var_1) dove var_1 è una variabile (scalare, arrat, matrice, stringa, definita nel workspace)
myui('abcd',10)
viene passata una stringa ed un valore (10)
Al parametro
varargin è associato automaticamente il parametro
nargin nel quale viene memorizzato il numero di parametri inseriti nella chiamata alla funzione il che corrisponde al numero di elementi del cellarray varargin.
Come detto, ho una versione più vecchia di MatLab per cui non so come vengono gestiti i parametri "source" e "callbackdata"; mi dispiace
Se si utilizza GUIDE per la creazione della GUI, il meccanismo di scambio dati tra gli uicontrols può essere implementato usando la funzione "
guidata".
Hope this helps.