2017-07-12 91 views
0

我正在編寫一個使用MATLAB中的命令創建Simulink模型的程序。目前,添加的任何子系統都將立即被清除,然後用我們想要的塊重新填充。我的問題是如何在子系統清除後將While Iterator Block添加回子系統?Simulink - 通過MATLAB命令行添加Iterator模塊到子系統

示例代碼:

new_system('test_while_loop') 
add_block('simulink/Ports & Subsystems/While Iterator Subsystem', 'test_while_loop/Subsystem_loop') 
Simuink.SubSystem.deleteContents('test_while_loop/Subsystem_loop') 
add_block('simulink/Ports & Subsystems/While Iterator', 'test_while_looop/Subsystem_loop/While Iterator') 

這回來與錯誤There is no block named 'simulink/Ports & Subsystems/While Iterator,即使documentation爲Simulink中說,該塊包含端口&子系統庫中。我需要更改以添加此塊?

回答

2

對於內置塊,您應該使用塊類型將塊添加到您的系統。要識別塊類型,使用

get_param(gcb, 'BlockType') 

對於while迭代器塊,這將返回'WhileIterator'。您可以在此塊使用

add_block('built-in/WhileIterator','test_while_looop/Subsystem_loop/While Iterator') 

爲add_block查看文檔在https://www.mathworks.com/help/simulink/slref/add_block.html添加到您的系統。