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

采纳的回答

Voss
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 CenterFile Exchange 中查找有关 Visual Exploration 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by