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

在MATLAB的GUI中将数据从函数传输到回调函数,matlab,callback,data-transfer,matlab-guide,Matlab,Callback,Data Transfer,Matlab Guide,我在MATLAB中有一个GUI(使用GUIDE创建),它有一个按钮回调和两个编辑框。首先填充编辑框,然后按下按钮在一对轴上绘制图形 按下此按钮后,我执行一个.m文件,该文件将编辑框中的数据串行发送到微控制器,并根据发送的数据接收一些计算数据。该数据在另一个单独的功能文件中生成,该文件处理从微控制器发回的串行数据 现在,我想把这些数据传输到按钮回调函数,这样它就可以被绘制在一对轴上。如果没有全局变量,如何执行此操作?问题很复杂,因为每次我从微控制器接收串行数据时,我都必须不断更新绘图 按钮回调的轮

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

按下此按钮后,我执行一个.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 

提前感谢您。:-)

我想你想要的是使用
guidata
,这里有一个很好的解释和一篇关于同一主题的帖子。您也可以使用,
setappdata
,但这与全局数据类似。

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