在Matlab
中,get_param
和set_param
命令需要块的确切目录。
gcb
命令可以为您提供当前所选块的路径
确定相对于该块的块路径的最佳方法是什么?
例如,相对路径标识符有时会使用句点。
要查找当前路径,请使用'./'
要查找父路径,请使用'../'
要查找父级的父级,请使用'../../'
。
然而,这些不与gcb
一起使用。
在Simulink
中,如果我创建一个块并选择它,则
然后输入Matlab
窗口:
get_param([gcb], 'ObjectParameters')
我提供了一个块参数列表,
其中任何一个都可以使用set_param([gcb], <parameter>, <value>)
进行更改。
参数列表中包含Parent
,它提供父路径
是否有一个命令可以采取路径并删除到下一个'/'
?
(或者更有用的是,一个充当反向fullfile
的命令?)
(有人提到正则表达式,所以我正在研究那些。)
另外,(对我来说不那么重要,但对后人来说),
有没有可以找到儿童路径的命令?
答案 0 :(得分:4)
您可以将get_param(<blockname>, 'Parent')
用于当前块的父级。要获得父级和更高级别的父级,您需要创建自己的函数,如下所示:
function blk = getParent(blk, n)
for k=1:n
blk = get_param(blk, 'Parent');
end
end
因此getParent(gcb, 1)
为您提供父级,getParent(gcb, 2)
为您提供父级的父级,依此类推。
要查找孩子,您应该使用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
请注意,如果某些孩子是图书馆链接,您还需要使用FollowLinks
选项。