在 matlab 中替换块

replacing blocks in matlab

我知道这可能很简单,但我至少卡住了一个小时.. 我只是找不到错误是什么。(我读了文件) 任何帮助表示赞赏。提前致谢

function y = in_out_modeling(~)

    model_name = 'modeladvisor_test';

    all_input_blocks = find_system('modeladvisor_test', 'FollowLinks', 'on', 'LookUnderMasks', 'all', 'BlockType', 'In');
    all_output_blocks = find_system('modeladvisor_test', 'FollowLinks', 'on', 'LookUnderMasks', 'all', 'BlockType', 'Out');

    for i=1:length(all_input_blocks)
        replace_block(model_name, all_input_blocks(i), 'From');
    end

    for i=1:length(all_output_blocks)
        replace_block(model_name, all_output_blocks(i), 'Goto');
    end

replace_block 通过将块类型作为输入来替换块。您将这些块的路径作为输入发送,这是行不通的。尝试使用,

replace_block(model_name, 'Inport', 'From')

以上每次替换都会提示你。如果您不想被提示,请使用

replace_block(model_name, 'Inport', 'From', 'noprompt')

replace_block 也将 return 它插入的新块的路径。您可以使用该列表来验证是否已替换所有块。

如果您想使用 find_system 进行自己的搜索,请使用 'Name' 作为 replace_block 的参数。

replace_block(model_name, 'Name', all_input_blocks(i), 'From', 'noprompt')

没有 BlockTypeInOut 的块。因此 all_input_blocks 是空的,您没有调用任何 replace_block 代码。对于输出也是如此。