Is there a way to select a variable from a drown down menu rather than a string?

1 次查看(过去 30 天)
I want to have something like this:
x = 1;
y = 2;
z = 3;
% drop down menu options are x, y, or z.
dropdownValue = x;
disp(dropdownValue);
dropdownValue
= 1
what I actually get is:
x = 1;
y = 2;
z = 3;
% drop down menu options are x, y, or z.
dropdownValue = 'x';
disp(dropdownValue);
dropdownValue
= x
I'm struggling to describe it very well but hope this kind of sudo-code helps!

采纳的回答

Walter Roberson
Walter Roberson 2020-8-5
var_values = [x; y; z];
dropdownIDX = handles.AppropriateHandleName.Value;
dropdownValue = var_values(dropdownIDX);
That is, the Value property of a uicontrol 'style', 'drop' is the index of the selected entry. You would use that index to index into the list of values to get the selected value.
You would not use dynamic variable names.
However, you could also use
var_values.x = x; var_values.y = y; var_values.z = z;
dropdownEntries = handles.AppropriateHandleName.String;
dropdownIDX = handles.AppropriateHandleName.Value;
dropDownString = dropdownEntries{dropdownIDX}; %this is the part that would get you 'x'
dropdownValue = var_values.(dropDownString);
  1 个评论
Eddie Martin
Eddie Martin 2020-8-5
编辑:Eddie Martin 2020-8-5
Thanks you for your help!
var_values = [x; y; z];
dropdownIDX = handles.AppropriateHandleName.Value;
dropdownValue = var_values(dropdownIDX);
So when using this, what value does dropdownIDX take? In other words what should be the options in the drop down?
Edit: The second method I understand a little better and have edited it slightly to work in my real code. There are three drop downs. In each, the user selects what axis they would like to change the original axis to. So app.xChangetoDropDown.Value should = 'y' for ease of the user, but in the code it will be refered to as 2. I dont know how robust this is but it seems to work as intended with minimal testing so far.
x = 1;
y = 2;
z = 3;
var_values.x = x; var_values.y = y; var_values.z = z;
%x
xdropDownString = app.ChangextoDropDown.Value;
xChangeto = var_values.(xdropDownString);
%y
ydropDownString = app.ChangeytoDropDown.Value;
yChangeto = var_values.(ydropDownString);
%z
zdropDownString = app.ChangeztoDropDown.Value;
zChangeto = var_values.(zdropDownString);

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Migrate GUIDE Apps 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by