How to plot a selected parameter off a list box?

6 次查看(过去 30 天)
I am creating a GUI that collects data from a group of .txt files. These text files have multiple sets of values, where I only need one of them plotted at any given time. So the intention is to select a value, and then press the 'plot' button, and see that value get plotted.
There is a label to the right of the listbox that displays the name of the y-axis value which is selected. This is done using the following coding.
function GUI_for_log_OpeningFcn(hObject, eventdata, handles, varargin)
evalin('base','clear all');
evalin('base','clc');
listString = get(handles.listbox3,'String');
assignin('base','listString',listString);
the listbox code is as shown
function listbox3_Callback(hObject, eventdata, handles)
listValue = get(handles.listbox3,'Value');
assignin('base','listValue',listValue);
listString = evalin('base','listString');
set(handles.text4,'String',listString(listValue,1));
How do I manage to plot the y-axis values after selecting it from the list box? Currently the pushbutton will plot a hardcoded y-axis value, but I wish for that to be changed from the GUI.
function pushbutton1_Callback(hObject, eventdata, handles)
a = getappdata(0,'totData');
axes(handles.axes1);
plot((a{:,1}),(a{:,8}));
Where 'totData' is a table which holds all of the imported file data in one table. I am attaching two of the files where the raw data is obtained from.
  3 个评论
Chamath Vithanawasam
编辑:Chamath Vithanawasam 2018-7-31
Well each of the strings in the list box is the name of one of the columns of data. The image below shows the combined table that is created when the GUI is initiated.
All the columns are recorded at specific time intervals. What I intend to see is when I click the desired string from the listbox the plot function plots the corresponding data on the graph, with the 'TimeStamp' on the x axis
Chamath Vithanawasam
编辑:Chamath Vithanawasam 2018-7-31
I figured out how to do it, in my code the variable named 'listValue' holds the column number. All I had to do was get that value into the pushbutton callback as shown below.
function pushbutton1_Callback(hObject, eventdata, handles)
listValueAA = get(handles.listbox3,'Value');
assignin('base','listValueAA',listValueAA);
listString = evalin('base','listString');
set(handles.text4,'String',listString(listValueAA,1));
%disp(listValueAA+1);
a = getappdata(0,'totData');
axes(handles.axes1);
plot((a{:,1}),(a{:,listValueAA+1}));
Apologies for not asking the question clearly, I am very new to Matlab GUIDE. Like, 1 week new.

请先登录,再进行评论。

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Interactive Control and Callbacks 的更多信息

产品


版本

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by