Transfering variables from Workspace to GUIDE Interfaz

1 visualizzazione (ultimi 30 giorni)
Hello Everybody I would like to ask you the following question:
I have a set of variables that I have generated in the MATLAB Workspace. I also created a GUIDE Interfaz to process this variables. I would like to be able to select those variables from the GUI but I don´t know how to incorporate some windows that allows me to do that. I surfed in different sites but I could not find some help. I would appreciate your help.
Thank you in advance.

Risposta accettata

DeYong
DeYong il 28 Nov 2012
Thank you very much Arthur.I´ll try with your solution. It seems to be perfect. If I had some other proble I´ll post again. Thanks a lot-

Più risposte (2)

Arthur
Arthur il 16 Nov 2012
You can retrieve variables from the base workspace using evalin.
  2 Commenti
DeYong
DeYong il 27 Nov 2012
Modificato: DeYong il 27 Nov 2012
Thank you for your Answer. It is half usefull for my purpose. I need a function (or an arrange of them) that allow me to choose, by mean a menú or something similar to a uiget function, wich variable from workspace I will load in a variable. By mean evalin the name of the variable that a I will have to be pre established. Thanks you again. I could not solve my proble yet.
Arthur
Arthur il 28 Nov 2012
Ok, so you first want a list of variables from the base workspace, and then select one of those. You need to make a simple GUI containing a listbox. In the openingFcn of the GUI you retrieve the variable names from the base and store these in your listbox, like this:
varnames = evalin('base','who'); %get variables from workspace
set(handles.listbox1,'String',varnames); %put names in listbox
In the callback of the listbox, you can get the values that you need.
varnames = get(handles.listbox1,'String') %get variable names;
sel = get(handles.listbox1,'Value') %get selected variable;
myVarName = varnames{sel}; %get name of selected variable;
myVarValue = evalin('base',myVarName);

Accedi per commentare.


Alex Yugcha
Alex Yugcha il 12 Set 2020
Modificato: Alex Yugcha il 12 Set 2020
Hello, i used code from Arthur
I have this in workspace:
then i have created a GUI
In the Opening Fcn
varnames = evalin('base','who'); %get variables from workspace
set(handles.listbox1,'String',varnames); %put names in listbox
In the 'GRAFICAR'_Callback
varnames = get(handles.listbox1,'String') %get variable names;
t = varnames{1}; %get name of selected variable;
y =varnames{2};
t = evalin('base',t);
y = evalin('base',y);
axes(handles.axes1)
plot(t,y);
Then I could draw my function 'y' directly on the axis

Categorie

Scopri di più su Migrate GUIDE Apps in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by