Simulink:在层次结构中获取块的路径
Simulink: Get Path of Blocks Higher on the Hierarchy
在 Matlab
中,get_param
和 set_param
命令需要块的确切目录。
gcb
命令可以为您提供当前 select 块的路径。
确定相对于此块的块路径的最佳方法是什么?
例如,相对路径标识符有时使用句点。
要查找当前路径,请使用'./'
。
要查找父路径,请使用 '../'
.
要查找父项的父项,请使用 '../../'
.
但是这些不能与 gcb
一起使用。
MWE
在 Simulink
中,如果我创建一个块并 select 它,
然后输入 Matlab
window:
get_param([gcb], 'ObjectParameters')
我得到了一个块参数列表,
其中任何一个都可以使用 set_param([gcb], <parameter>, <value>)
.
进行更改
参数列表中包含 Parent
,它提供父路径。
是否有一个命令可以采用路径并删除直到下一个 '/'
?
(或者更有用的是,作为反向 fullfile
的命令?)
(有人提到了正则表达式,所以我正在研究这些。)
此外,(对我而言不太重要,但对后代而言),
有没有可以找到子路径的命令?
您可以对当前块的parent使用get_param(<blockname>, 'Parent')
。要获得 parent 的 parent 层和更高层,您需要像这样创建自己的函数:
function blk = getParent(blk, n)
for k=1:n
blk = get_param(blk, 'Parent');
end
end
所以getParent(gcb, 1)
给你parent,getParent(gcb, 2)
给你parent的parent等等。
要找到 children,您应该使用 find_system
和 SearchDepth
参数。
find_system(gcb) % All children regardless of depth
find_system(gcb, 'SearchDepth', 1) % Immediate children
find_system(gcb, 'SearchDepth', 2) % Immediate children and their children
请注意,如果某些 children 是库链接,您还需要使用 FollowLinks
选项。
在 Matlab
中,get_param
和 set_param
命令需要块的确切目录。
gcb
命令可以为您提供当前 select 块的路径。
确定相对于此块的块路径的最佳方法是什么?
例如,相对路径标识符有时使用句点。
要查找当前路径,请使用'./'
。
要查找父路径,请使用 '../'
.
要查找父项的父项,请使用 '../../'
.
但是这些不能与 gcb
一起使用。
MWE
在 Simulink
中,如果我创建一个块并 select 它,
然后输入 Matlab
window:
get_param([gcb], 'ObjectParameters')
我得到了一个块参数列表,
其中任何一个都可以使用 set_param([gcb], <parameter>, <value>)
.
参数列表中包含 Parent
,它提供父路径。
是否有一个命令可以采用路径并删除直到下一个 '/'
?
(或者更有用的是,作为反向 fullfile
的命令?)
(有人提到了正则表达式,所以我正在研究这些。)
此外,(对我而言不太重要,但对后代而言),
有没有可以找到子路径的命令?
您可以对当前块的parent使用get_param(<blockname>, 'Parent')
。要获得 parent 的 parent 层和更高层,您需要像这样创建自己的函数:
function blk = getParent(blk, n)
for k=1:n
blk = get_param(blk, 'Parent');
end
end
所以getParent(gcb, 1)
给你parent,getParent(gcb, 2)
给你parent的parent等等。
要找到 children,您应该使用 find_system
和 SearchDepth
参数。
find_system(gcb) % All children regardless of depth
find_system(gcb, 'SearchDepth', 1) % Immediate children
find_system(gcb, 'SearchDepth', 2) % Immediate children and their children
请注意,如果某些 children 是库链接,您还需要使用 FollowLinks
选项。