带有 for 循环的 MATLAB add_line 给出了无效的 Simulink 对象名称错误

Posted

技术标签:

【中文标题】带有 for 循环的 MATLAB add_line 给出了无效的 Simulink 对象名称错误【英文标题】:MATLAB add_line with for loop gives invalid Simulink object name error 【发布时间】:2021-01-29 12:59:19 【问题描述】:

我有 MATLAB Simulink 模型,其中“子系统”与“添加”块连接。我想使用脚本在子系统和添加块之间添加数据类型转换块。我实现如下代码所示。但我在代码的 add_line 中收到错误 Invalid Simulink object name。

for i = 1:n;
      delete_line('myModel',strcat('Subsystem/',num2str(i),'/'), strcat('Add/',num2str(i)));
      add_block('simulink/Commonly Used Blocks/Data Type Conversion', strcat('myModel','/Data Type Conversion',num2str(i)));
      add_line('myModel', strcat('Subsystem/',num2str(i),'/'), strcat('Data Type Conversion',num2str(i)),'autorouting','on');                                     
      add_line('myModel',strcat('Data Type Conversion',num2str(i),'/1'),strcat('Add',num2str(i)),'autorouting','on'); 

【问题讨论】:

我的回答有帮助吗? 【参考方案1】:

您没有为数据类型转换块指定目标端口号。

试试

add_line('myModel', strcat('Subsystem/',num2str(i),'/'), strcat('Data Type Conversion',num2str(i),'/1'),'autorouting','on');

您可能还需要为添加块的行执行此操作,因为我猜它也有多个端口。

【讨论】:

以上是关于带有 for 循环的 MATLAB add_line 给出了无效的 Simulink 对象名称错误的主要内容,如果未能解决你的问题,请参考以下文章

matlab中矩阵怎么在for循环中用

MATLAB中如何用for 循环将结果代入矩阵中?

matlab里面的for循环嵌套

MATLAB:附加到预先分配的矩阵

matlab 如何将for每循环一次产生的矩阵合并成一个大矩阵

matlab处理循环特别慢的问题