matlab - 在 Simulink 运行时为 MATLAB 功能 block 加载代码

标签 matlab simulink

我想在我的 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';

另见 this post on MATLAB Answers .

关于matlab - 在 Simulink 运行时为 MATLAB 功能 block 加载代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10335564/

相关文章:

c - 如何从 C .h 文件中定义的 typedef 结构创建 Simulink 总线?

c++读取csv文件并操作数据然后打印错误

matlab - 大数运算

matlab - 在函数范围内加载总线定义

matlab - 以编程方式打开 Simulink MATLAB 功能 block 的代码

c - 分配var = 0.0时程序退出;

matlab - 获取矩阵中重复次数最多的值的有效方法

performance - 用于计算矩阵元素之间边界的脚本

matlab - 如何在 Curve Fitting Toolbox 中保存修改后的数据?

scope - simulink 中的范围删除前几个数据