UIcontrol 按钮以在 matlab 中绘制工作区中的数据
Posted
技术标签:
【中文标题】UIcontrol 按钮以在 matlab 中绘制工作区中的数据【英文标题】:UIcontrol push button to plot data from workspace in matlab 【发布时间】:2015-10-28 15:55:32 【问题描述】:我是 matlab 新手,我一直坚持使用回调函数来绘制工作区中的数据。在我的代码中,按钮 1 和 2 允许我将数据导入工作区(“importTac”和“importref”是单独的 m.files,用于将数据导入工作区并且它们运行良好)。
我的问题是如何通过单击 pushbutton_3 从工作区绘制数据?
function KinA
%Configure window
h.fig = figure('MenuBar', 'none','units','pixels','Position', [0 0 1280 750],... % [x,y,width, height]
'name','KinA | Kinetic Analysis','numbertitle','off','Resize', 'off');
tgroup = uitabgroup('Parent', h.fig);
% Define tabs
tab1 = uitab('Parent', tgroup, 'Title', '1| IMPORT DATA');
tab2 = uitab('Parent', tgroup, 'Title', '2| Dynamic parameters');
tab3 = uitab('Parent', tgroup, 'Title', '3| Dynamic plots');
tab4 = uitab('Parent', tgroup, 'Title', '4| Volume of distribution, DVR');
%CONTENT ON TAB1: importdata, plot TAC and
handles.button_1 = uicontrol('Parent', tab1, 'Style','pushbutton',...
'String','Import TACs','Position',[20 650 120 25], 'Callback', 'importTac'); % [x,y,width, height]
handles.button_2 = uicontrol('Parent', tab1, 'Style','pushbutton',...
'String','Import reference','Position',[20 620 120 25], 'Callback', 'importRef'); % [x,y,width, height]button_importReference = uicontrol
handles.button_3 = uicontrol('Parent',tab1, 'Style','pushbutton',...
'String','Plot raw data','Position',[20 590 120 25], 'Callback',@plot_data,handles);
%Define axes
handles.ax1 = axes('Parent', tab1 , 'units', 'pixels', 'Position',[200 450 300 200]);
set(gca, 'tickdir', 'out', 'box', 'off', 'FontSize', 14 ,'Color',[0.8 0.8 0.9]);
xlabel('Time [min]', 'FontSize', 12, 'FontName', 'Arial');
ylabel('Activity [kBq]', 'FontSize', 12, 'FontName', 'Arial');
%Callback function
end
【问题讨论】:
importTac
和 importRef
是如何定义的?他们会退货吗?
感谢您的快速回复。 importTac 和 importRef 由 uigetdir 和 uigetfile 定义。他们工作正常。我想到了。我使用 evalin 访问工作区中的变量 %Callback function TAC plot function plot_data(source,eventdata) time = evalin('base','xValues');大脑 = evalin('base','y1Values');输入 = evalin('base','y2Values'); p1=plot(handles.ax1,time,brain) p2=plot(handles.ax2,time,input) 结束
【参考方案1】:
%evalin() 访问工作区中的变量 %回调函数
function plot_data(source,eventdata)
time = evalin('base','xValues');
brain = evalin('base','y1Values');
input = evalin('base','y2Values');
p1=plot(handles.ax1,time,brain);
p2=plot(handles.ax2,time,input);
end
【讨论】:
以上是关于UIcontrol 按钮以在 matlab 中绘制工作区中的数据的主要内容,如果未能解决你的问题,请参考以下文章
CAShapeLayers 未在自定义子类 (UIControl) 中绘制
自定义 UIView 或 UIControl 绘制文本与标签?