背景
最近用matlab的GUI设计了一个软件,用来控制simulink的仿真过程。开发了一系列很实用的功能。包括slider和编辑框绑定互动,表格,2D,3D图的实时刷新,文件的导入与解析,按钮特征的控制,定时器的使用等。
以前也用过matlab的GUI设计过软件,当时是写了一个读取txt数据并进行分析的软件,https://blog.csdn.net/iamqianrenzhan/article/details/53192301。现在这个软件除了要有txt的导入与解析部分,还包含了其他的交互。
slider和编辑框的绑定
效果:
实现方式:
在编辑框的回调函数中写:
function edit_CXP_Callback(hObject, eventdata, handles)
global CXP
cxp = str2double(get(hObject,'String'));
if cxp>CXP(2)
cxp = CXP(2);
end
if cxp<CXP(1)
cxp = CXP(1);
end
set(hObject,'String',num2str(cxp));
set(handles.slider_CXP,'Value',cxp);
set_CXP(cxp);
end
在滑动条的回调函数写:
function slider_CXP_Callback(hObject, eventdata, handles)
cxp = get(hObject,'Value');
set(handles.edit_CXP,'String',num2str(cxp));
set_CXP(cxp);
end
其中
set_CXP(cxp)
函数是将结果设置到simulink中。
表格的实时刷新
效果:
实现方式:
table_data=zeros(10,7)
%prepare data
for i = 1:1:10
table_data(i,1) = int32(simulation_data.InputPort(1).Data(i*3-2))