Имам четири елемента (типове почви), които трябва да бъдат вмъкнати в изскачащото меню и изходът трябва да бъде целочислени стойности (порьозности), показани с помощта на статичен текст. Как може да стане това?
Как да напиша обратно извикване за изскачащо меню в matlab?
Отговори (1)
Предполагам, че ще използвате GUIDE, за да създадете своя GUI. Ето прост код за попълване на изскачащо меню с предварително дефинирани низове и използване на избрания елемент, за да промените показания изход в статичния текст:
1) За да попълните изскачащото меню, просто създайте клетъчен масив от низове и задайте свойството 'String' на менюто на този клетъчен масив:
% Създаване на клетъчен масив
SoilTypes = {'Soil A' 'Soil B' 'Soil C' 'Soil D'};
% Задайте свойството низ на изскачащото меню:
set(handles.popupenu1,'String',SoilTypes);
2) Сега обратното извикване, за което говорите, изглежда е обратното извикване за промяна на избора, което може да изглежда така:
function Popupmenu1_SelectionChangeFcn(hObject, eventdata, handles)
Това се изпълнява, когато потребителят промени избрания елемент в изскачащото меню. Следователно искате да получите избрания елемент с този ред:
get(handles.popupmenu1,'Value')
Така че според предишния масив от клетки можете да използвате (наред с други опции) сценарий за превключване/случай, в който можете да правите каквото искате за всеки тип почва, като например показване на текст в статичното текстово поле. Можете също така да зададете директно низа в текстовото поле така:
SelectedItem = get(handles.popupmenu1,'Value') % Get the value, from 1 to 4 in your case
set(handles.text1,'String',SoilTypes{SelectedItem}); % Display the corresponding soil type
Надяваме се, че това ще ви помогне да започнете!