MatlabGUI调用Simulink编译成可执行的exe文件的解决方法-GUIDE_fig.fig
我(们)曾经N次遇到过这样的提问:
“为什么GUI里如果使用sim, simset等函数时,就不能编译成可执行的exe文件发布呢?”
我们也解释过很多次,原因是Matlab的compiler不支持sim等与simulink相关的函数,同样,比如说神经网络相关的函数也不支持。
然而,GUI和Simulink混合编程,是可以编译成可执行exe文件的,使用Matlab自带的RTbuilder工具箱函数编译即可。
使用的方法是:先使用RTW把simulink编译成exe文件,然后与GUI一起编译(GUI可以和exe文件一起编译的)
当然,这个时候请特别注意:不需要在GUI里使用sim函数了,流程是这样的:
1:设计GUI回调函数的时候,把GUI传递的参数传递给Simulink时,不要直接使用simset等函数,而是把参数写到一个mat文件里,比如:
x = [0.2 handles.In1 handles.In2]';
save Input.mat x
2:设计Simulink模型的时候,记得让simulink从mat文件里读取参数(就是刚刚GUI写入的参数),同样,输出参数也写到mat文件里,(如output.mat), 比如:
Matlab57.jpg
Matlab GUI调用Simulink,编译成可执行的exe文件的解决方法
3:在GUI回调函数里,不要直接使用sim命令,而是直接调用exe文件(simulink模型编译 好的exe文件)
!SL_model.exe
4:如果要在GUI上面显示参数,直接读取output.mat文件即可:
load Output.mat
set))
guidata
现在大家对整个流程应该熟悉了吧? 也就是Matlab GUI与Simulink设计的程序,照样可以编译成exe文件发布...
附件里为用到的.m, ,fig和mdl文件,下载试一下如下命令:
GUIDE_fig.fig
Matlab GUI调用Simulink,编译成可执行的exe文件的解决方法
GUIDE_fig.m
Matlab GUI调用Simulink,编译成可执行的exe文件的解决方法
SL_model.mdl
Matlab GUI调用Simulink,编译成可执行的exe文件的解决方法
x = [0 0 0]';
save Input.mat x
rtwbuild
mcc -m GUIDE_fig.m -a SL_model.exe
注明:以上文件均来自Mathworks公司提供,Matlab中文论坛翻译整理。
2021-07-21 08:39:36
2KB
matlab
1