Как получить исходный блок Имя функционального блока Matlab Simulink - PullRequest
0 голосов
/ 14 февраля 2020

У меня есть простая модель с постоянным блоком, подключенным к функциональному блоку, подключенному к выходу. Постоянный блок может принимать True или False . И поэтому я хотел бы, чтобы в функциональном блоке цвет блока Constant в соответствии со значением (зеленый, когда истина и красный, когда ложь).

Чтобы сделать это, я мог бы просто использовать set_param с именем константного блока, но я должен сделать решение, используя исходный блок функционального блока.

Я уже пробовал это:

function y = fcn(u)
%#codegen
coder.extrinsic('set_param','get_param', 'gcb');
y = u;
b = struct('Type', {}, 'Position', {}, 'SrcBlock', {}, ...
    'SrcPort', {}, 'DstBlock', {}, 'DstPort', {});
b = get_param(gcb ,'PortConnectivity');
s = b(1).SrcBlock;
if u == true
    set_param(s ,'BackgroundColor','red');
else
    set_param(s ,'BackgroundColor','green');
end

Мне пришлось создать структуру b, потому что если нет, то у меня была ошибка Attempt to extract field 'SrcBlock' from 'mxArray'. А теперь у меня есть эта ошибка Index expression out of bounds. Attempted to access element 1. The valid range is 1-0., и я ее не понимаю.

Спасибо вам!

...