Changing the value in the popupmenu

1 次查看(过去 30 天)
The first item of my popupmenu is an instruction so it really isn't a value, but MATLAB seems to take it as a value whenever i accidentally pick it. Let's say I want to assign "5" to my second item, how do I make it show 5 instead of 2 because whenever I do the calculation MATLAB uses 2 instead of 5.

采纳的回答

Walter Roberson
Walter Roberson 2018-4-23
lookup_table = [nan, 5, 10, -4, 18];
idx = get(hObject, 'value');
if isempty(idx)
... user has not chosen anything
elseif idx > length(lookup_table)
... mismatch between lookup table and number of entries in String property
else
associated_value = lookup_table(idx);
if isnan(associated_value)
... opps, user chose a header.
end
end
  3 个评论
Walter Roberson
Walter Roberson 2018-4-23
popChoice = contents{get(hObject,'Value')};
[tf, idx] = ismember(popChoice, {'Black', 'Brown', 'Red', 'Orange', 'Yellow', 'Green', 'Blue', 'Violet', 'Grey', 'White'});
if ~tf
  ... user choose a header or has not made any choice
else
  popVal = 10 * (idx-1);
end
Quan Seah
Quan Seah 2018-4-23

The code doesn't seem to work either it is still showing the same value

 function firstmenu_Callback(hObject, eventdata, handles)
contents = cellstr(get(hObject,'String'));
popChoice = contents{get(hObject,'Value')};
[tf,idx] = ismember(popChoice, {'Black', 'Brown', 'Red', 'Orange', 'Yellow', 'Green', 'Blue', 'Violet', 'Grey', 'White'});
if ~tf
    ... user choose a header or has not made any choice
else
popVal = 10*(idx-1);
end

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 App Building 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by