在MATLAB的GUI中将数据从函数传递到回调函数

时间:2013-06-13 14:27:48

标签: matlab callback data-transfer matlab-guide

我在MATLAB中有一个GUI(使用GUIDE创建),它有一个按钮回调和2个编辑框。首先填充编辑框,然后按下按钮在一对轴上绘制图形。

按下此按钮后,我执行.m文件,该文件将编辑框数据中的数据串行发送到微控制器,并根据发送的数据接收一些计算数据。该数据在另一个单独的函数文件中生成,该文件处理从微控制器发回的串行数据。

现在,我想将此数据传输到按钮回调函数,以便可以在一对轴上绘制。我如何没有全局变量?每当我从微控制器接收串行数据时,我必须不断更新绘图,这个问题很复杂。

按钮回调的大纲如下:

% --- Executes on button press in angle_speed_pushbutton_callback.
function angle_speed_pushbutton_callback_Callback(hObject, eventdata, handles)
% hObject    handle to angle_speed_pushbutton_callback (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)


angle1 = handles.xy_angle;  %These values are obtained from the edit boxes
angle2 = handles.xz_angle; 
delay = handles.speed;

Testbed_Calibration_main; %Main function which sends data serially to the microcontroller

% I want to transfer the data received by the function which handles the microcontroller output here

% plot transferred data on axes here 

提前谢谢你。 : - )

2 个答案:

答案 0 :(得分:1)

我认为你想要的是使用guidata,在同一主题上有一个非常好的解释here和一个帖子here。您也可以使用setappdata,但这类似于全局数据。

答案 1 :(得分:0)

在为程序执行GUI时遇到了类似的问题。我终于意识到gui m文件可以是一个脚本,从而使所有对象句柄都可用。据我所知,也许你可以将它应用到你的问题中。