How to get_param list on subsystem blocks inport and outports
95 ビュー (過去 30 日間)
古いコメントを表示
Hi Guys,
I am trying how to figure out how to generate a list of a subsystems inports and outport names. This should be a list of the names that are listed on the block, not what is connected to it. I have been trying various things, and the closest I can get is to have get_param tell me how many inputs and how many output ports there are, but no signal names.
Thanks for the help.
2 件のコメント
Kaustubha Govind
2013 年 8 月 15 日
Do you mean the port labels on the subsystems? Are these masked subsystems (in which case the port labels are specified on the Mask) or un-masked subsystems, where the ports labels are inferred from the names of the top-level inport and outport blocks.
回答 (3 件)
Purshottam Vishwakarma
2018 年 4 月 6 日
simBlockH = get_param(gcb, 'Handle');
handles = find_system(simBlockH, 'LookUnderMasks', 'on', 'FollowLinks', 'on', 'SearchDepth', 1, 'BlockType', 'Inport');
portNames = cellstr(get_param(handles, 'Name'))
1 件のコメント
Dipesh007
2020 年 5 月 21 日
Hello Purshottam,
Thanks for the solution it help me.
Now how can i export these Inport from command window to xls using mscript.
Thanks in advance.
Chetan Aswathanarayana
2013 年 8 月 18 日
You can try the below: Say your Model is Sample.mdl:
open_system('Sample');
blks = find_system('Sample','Type','block');
N = get_param(blks, 'BlockType');
j = 1;
k = 1;
for i = 1:length(N)
if ( strcmp(N{i},'Inport'))
In{j} = blks{i};
In{j} = strrep(In{j},'Sample/Subsystem/',[]);
j = j + 1;
elseif ( strcmp(N{i}, 'Outport'))
Out{k} = blks{i};
Out{k} = strrep(Out{k},'Sample/Subsystem/',[]);
k = k + 1;
end
end
In and Out are the 2 ouput cell arrays, which gives what you are looking for:
>> In
In =
'Position' 'Velocity' 'Accel'
>> Out
Out =
'Voltage'
4 件のコメント
vvd03
2015 年 2 月 21 日
Oh! Sorry! I need this command:
... = find_system(...,'LookUnderMasks','all',...)
Chetan Aswathanarayana
2013 年 8 月 16 日
Hi Michael, If I understand your question correctly , you are looking to get the Input and Output Signal names.Then you can try the below:
>>model = 'Sample';
>>blks = find_system(model,'Type','block')
blks =
'Sample/In1'
'Sample/Unit Delay'
'Sample/Out1'
>>N = get_param(blks, 'BlockType')
istblks =
'Inport'
'UnitDelay'
'Outport'
The above gives the names for the list of all the blocks. And 'N' tells you which of the blocks are inports and outports.
参考
カテゴリ
Help Center および File Exchange で Programmatic Model Editing についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!