Select lines from table to plot in MATLAB GUI
조회 수: 8 (최근 30일)
이전 댓글 표시
Hi all!
I am loading several data to plot in a matlab gui (built in GUIDE).
While I am loading the data I have built a table that it is updated with the titles of each spectrum that is loaded.
Is it possible to select multiple rows of the table and update the plot with the selected spectra only???
If yes could anyone provide me with any hint?
Or at least how could I export the INDEX of the selected table rows?
Please find attatched the GUI snapshot for better understanding of my question!
Thank you in advance
댓글 수: 0
채택된 답변
Voss
2022년 1월 21일
You can create one line for each spectrum (this would probably be in the plot button Callback) and then set the visibility of the lines in the table's CellSelectionCallback function. Something like the code below. You can copy/paste the code and run it on your system to see how it works, and then take the relevant parts and adapt them to your existing code. (I can't really demonstrate the table cell selection callback here, as far as I can tell.)
function main_gui()
handles.figure = figure();
fpos = get(handles.figure,'Position');
N = 7;
handles.table = uitable( ...
'Data',arrayfun(@(x)sprintf('REQ_%02d',x),1:N,'UniformOutput',false).', ...
'CellSelectionCallback',@cb_select, ...
'Units','pixels', ...
'Position',[fpos(3)-160 10 150 fpos(4)-20]);
handles.axes = axes( ...
'Units','pixels', ...
'Position',[10 10 fpos(3)-180 fpos(4)-20]);
colors = get(handles.axes,'ColorOrder');
handles.lines = cellfun(@(x)line( ...
'Parent',handles.axes, ...
'Color',x, ...
'XData',1:10, ...
'YData',10*rand(1,10), ...
'Visible','off'), ...
num2cell(colors(mod(0:N-1,size(colors,1))+1,:),2));
guidata(handles.figure,handles);
end
function cb_select(src,evt)
handles = guidata(src);
idx = evt.Indices(:,1);
set(handles.lines,'Visible','off');
set(handles.lines(idx),'Visible','on');
end
댓글 수: 4
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Visual Exploration에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!