Azzera filtri
Azzera filtri

Changing the value in the popupmenu

1 visualizzazione (ultimi 30 giorni)
Quan Seah
Quan Seah il 23 Apr 2018
Commentato: Quan Seah il 23 Apr 2018
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.

Risposta accettata

Walter Roberson
Walter Roberson il 23 Apr 2018
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 Commenti
Walter Roberson
Walter Roberson il 23 Apr 2018
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 il 23 Apr 2018

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

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su App Building 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