В моем скрипте matlab я анализирую текстовый файл с определенной структурой тегов и создаю Simulink Block для каждого найденного мной специального тега. Простой пример, у меня есть это:
[Link]
Link_Name : On/Off
Link_ID : _sZfSkku9Eemg_bhrv2HEbw
[Link]
Link_Name : On/Off
Link_ID : _qsYbsVeeEemna8dVWPKMTw
Вы можете видеть, что это не один и тот же объект, но они имеют одинаковые имена, и поэтому, когда в Matlab я создаю Simulink-блок для каждой найденной ссылки, у меня появляется ошибка "can't create a new On/Off Block"
что-то в этом роде.
Итак, я вставил идентификатор в описание блока и, если он такой же, я просто обновляю имя в случае, если пользователь изменил имя в текстовом файле:
set_param(gcb,'Name', link_NameValue);
Если это не так, я создаю новый блок:
add_block('simulink/Ports & Subsystems/In1',[component_NameValue '/' link_NameValue], 'MakeNameUnique', 'on');
Проблема в 'MakeNameUnique', 'on'
, он создаст бесконечность блока, если я запустил свой скрипт много раз и с set_param
у меня ошибка
The name 'On_Off' already exists
Итак, я хотел бы сделать цикл while следующим образом:
while error "can't create a new block"
add a "x" at the end of the name of the new block
end
or
while error "The name 'On_Off' already exists"
add a "x" at the end of the name of the existing block
end
Так что даже если у меня есть 4 [Link] с именем On / Off, он создаст On / Off, On / Offx, On / Offxx, On / Offxxx или с номером в конце, если это возможно.
Спасибо за помощь! Я пытался объяснить как можно короче.