我想以编程方式创建一个包含"MATLAB Function"块的简单Simulink模型 - 即使用Matlab代码 .
感谢this guide,我设法创建了一个包含块的新模型:
open_system(new_system('my_system'))
add_block('simulink/User-Defined Functions/MATLAB Function', 'my_system/my_func')
通常,为了编辑“MATLAB Function”块的代码,必须通过双击它然后输入新代码来“打开”该块 .
但是,我想使用例如编程方式设置该代码 . set_param()或任何相关功能 .
例如,要将以下内容设置为块的代码:
function y = fcn(v)
%#codegen
y = 2 * u;
我想使用类似的东西:
set_param('my_system/my_func', 'Script',...
'function y = fcn(u)\n%#codegen\n\ny = 2 * u;'...
);
我查看了 get_param('my_system/my_func', 'ObjectParameters')
的输出,并试图猜测哪个参数可用于设置块's function code: So far, I couldn't找到任何 . 因此,我的问题是:
Q: Is it possible, using only Matlab commands, to set the code of a "MATLAB Function" block in Simulink?
1 回答
(根据@Ander Biguri的要求,我已经移动了 a 解决方案,对我来说是一个单独的答案帖 . 如果有人有替代/更好的方法,请随时发布它)
好吧,似乎这个问题之前被问过here . (虽然可能有不同的表述?)我设法使用以下代码解决了我的问题: