我想在我的 MATLAB 路径中有一些文件 myfunc.m
并以某种方式将其内容加载到 MATLAB function block 中在模拟开始之前自动。这样,我就可以使用外部编辑器编写这些嵌入式函数,将它们作为独立文件分别进行版本控制等。
有没有办法以编程方式实现这一点?
我最初的尝试是尝试使用 get_param
之类的东西访问功能 block 的内容,但我似乎无法获得对代码本身的读/写访问权限。
最佳答案
如果目标 MATLAB Function
block 尚不存在,那么您可以按如下方式添加它(参见 this SO post):
load_system('eml_lib');
libname = sprintf('eml_lib/MATLAB Function');
add_block(libname,'myModel/myBlockName');
然后您可以使用 Stateflow API 修改 block 的代码:
sf = sfroot();
block = sf.find('Path','myModel/myBlockName','-isa','Stateflow.EMChart');
block.Script = 'Your code goes here';
关于matlab - 在 Simulink 运行时为 MATLAB 功能 block 加载代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10335564/