Вот как это можно решить.
В основном я помещаю опцию «Все» в конце строк во всплывающем меню, а если пользователь ее выбирает, то значение val равно 6, то есть количество элементов в handles.Data+1
, что делает условие для вводя оператор if.
function GUI_PopUp
clc
clear
%// Generate dummy data
handles.Data = cell(1,5);
x = 1:20;
handles.Data{1} = rand(1,20);
handles.Data{2} = 2.*x-5;
handles.Data{3} = x-10;
handles.Data{4} = x;
handles.Data{5} = 3.*x;
handles.x = x; % I was lazy sorry :)
%// Create GUI components
hFigure = figure('Position',[100 100 500 500],'Units','Pixels');
handles.axes1 = axes('Units','Pixels','Position',[60,90,400,300]);
PopupString = {'1';'2';'3';'4';'5';'All'};
handles.Pop = uicontrol('Style','popup','Position',[100 380 40 60],'String',PopupString,'Callback',@(s,e) PopupCallback);
handles.text = uicontrol('Style','text','Position',[100 460 40 30],'String','Select data');
guidata(hFigure,handles);
function PopupCallback
handles = guidata(hFigure);
val = get(handles.Pop,'Value');
%// If selected 'All'
if val == (numel(handles.Data)+1)
hold all
for k = 1:numel(handles.Data)
plot(handles.x,handles.Data{k},'parent',handles.axes1)
end
else
plot(handles.x,handles.Data{val},'parent',handles.axes1)
end
end
end
скриншот образца с помощью опции 'All' выбран:
Надежда, что помогает вам начать! Если нет, скажите мне, что я изменю код!
Спасибо за понимание! Я думаю, это сработает. –
Удивительный! Если это поможет вам, вы можете пометить ответ, как принято, пожалуйста? Благодаря! –