Transfering variables from Workspace to GUIDE Interfaz

1 vue (au cours des 30 derniers jours)
DeYong
DeYong le 16 Nov 2012
Modifié(e) : Alex Yugcha le 12 Sep 2020
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.

Réponse acceptée

DeYong
DeYong le 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-

Plus de réponses (2)

Arthur
Arthur le 16 Nov 2012
You can retrieve variables from the base workspace using evalin.
  2 commentaires
DeYong
DeYong le 27 Nov 2012
Modifié(e) : DeYong le 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 le 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);

Connectez-vous pour commenter.


Alex Yugcha
Alex Yugcha le 12 Sep 2020
Modifié(e) : Alex Yugcha le 12 Sep 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

Catégories

En savoir plus sur Migrate GUIDE Apps dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by