Hi!
Я работаю над автоматизированными преобразованиями Модели Simulink (создание моделей из Matlab Scipt), и мне нужно:
(a) добавить блок в simulink из скрипта Matlab — СДЕЛАНО,
(b) подключите его к нужному порту — ГОТОВО,
© поставить этот блок рядом с подключенным портом — НУЖНА ПОМОЩЬ.
Я обнаружил, что функция set_param может изменить положение, но мне нужно знать точные координаты:
set_param([‘sampleModel’ ‘/’ ‘От’],’Позиция’,[0 50 0 50])
Мне нужно установить ближайшее возможное расположение блока к подключенному порту. Это что-то вроде:
set_param([‘sampleModel’ ‘/’ ‘От’],’Позиция’,’Ближайший’). В «Позиции» есть какой-то вариант, что не нужно ставить точные координаты, а только «Ближайшие»?
Как я могу этого добиться?
ПРИМЕЧАНИЕ.
Matlabsolutions.com предоставляет последнюю Помощь по домашним заданиям MatLab, Помощь по заданию MatLab для студентов, инженеров и исследователей в различных отраслях, таких как ECE, EEE, CSE, Mechanical, Civil со 100% выходом. Код Matlab для BE, B.Tech , ME, M.Tech, к.т.н. Ученые со 100% конфиденциальностью гарантированы. Получите проекты MATLAB с исходным кодом для обучения и исследований.
Ответ эксперта
Джон Мичелл ответил. 2021–10–20 09:58:53
Для этого вам необходимо извлечь положение портов (как входящих, так и исходящих) каждой подсистемы.
вы можете сделать, как показано ниже
Modelname = 'dummy'; new_system(Modelname); open_system(Modelname); add_block('built-in/Subsystem',[Modelname '/Subsystem'],'Position',[200 200 300 500]); add_block('simulink/Sinks/Out1',[Modelname '/Subsystem/out1']); add_block('simulink/Sources/In1',[Modelname '/Subsystem/in1']); %% from here your point C begins %get porthandles PH = get_param([Modelname '/Subsystem'],'PortHandles'); %get position of inport and outport ports of subsystem ipportpos = get(PH.Inport,'Position');
СМОТРИТЕ ПОЛНЫЙ ОТВЕТ НАЖМИТЕ НА ССЫЛКУ