我有一个M脚本,它通过GUI从用户获取参数值,然后使用更新的参数值模拟simulink模型。我想把它转换成一个独立的exe文件,它可以在没有Matlab& amp; Simulink(即仅与Matlab运行时编译器一起使用)。我使用MATLAB 2010b 32bit。
我的方法:
由于Matlab编译器无法转换 sim 函数,我首先使用Rapid Simulation目标将我的Simulink模型转换为exe文件,然后从我的matlab脚本调用exe文件。
[Gain1, Gain2]= InputDataGUI;
load Par.mat %contains parameter structure of the model
param_struct.parameters.values(1:2) = [Gain1 Gain2]; %update
save Par.mat param_struct;
!SimulinkModelName.exe -p Par.mat
save results.mat
此脚本在Matlab中正常运行且没有错误。最后,我使用 deploytool 将M文件以及所有其他所需文件打包到exe中。这个最终的exe文件运行GUI并保存更新的Par.mat文件,但不提供模拟结果文件。我还尝试了 To File 块来保存结果。我认为该脚本无法运行模拟。
我对这个问题的处理方法是否正确? 我应该制作一个simulink mex文件吗? 提前感谢您的帮助。
答案 0 :(得分:2)
您的一般方法是正确的。但是,您可能还有一些事情尚未完成,
From File
块作为其输入,To File
块作为其输出-p
指定参数,-f
指定输入文件(如果要覆盖模型本身指定的文件),并指定-o
您希望数据写入的输出文件的名称(如果要覆盖模型本身中指定的那个)。