我有一个MATLAB函数块封装在一个蒙面子系统中。子系统的掩码有一个参数p1,我想在MATLAB函数中使用它。如何手动完成此操作是在文档中描述。但是,我需要以编程的方式这样做,到目前为止,我还没有弄清楚如何做到这一点。
以编程方式将参数添加到子系统的掩码Simulink.Mask.addParameter中,创建MATLAB函数块和设置其代码也是如此。困难的部分是以编程方式将函数参数p1的作用域从“输入”切换到“参数”(文档中的步骤2-4 )。我找不到存储这些信息的地方(我检查了“传统”Simulink块参数和与该块关联的Stateflow对象)。
发布于 2014-04-09 06:40:04
我找到了答案,关于MATLAB的答案。使用以下代码将输入编号i的范围设置为Parameter
% Get Stateflow root object
S = sfroot();
% Get block handle
B = S.find('Name','myBlockName','-isa','Stateflow.EMChart');
% Set scope
set(B.Inputs(i), 'Scope', 'Parameter')请注意,可以使用B.getChildren()访问块的所有输入、输出和参数。这对于参数尤其有用,因为没有单独的B.Parameters列表(相对于B.Inputs和B.Outputs)。
https://stackoverflow.com/questions/22940256
复制相似问题