matlab - Simulink:获取层次结构中较高模块的路径

标签 matlab path simulink

Matlabget_paramset_param命令需要 block 的确切目录。
gcb命令可以为您提供当前选定 block 的路径。
确定相对于该 block 的 block 路径的最佳方法是什么?

例如,相对路径标识符有时使用句点。

要查找当前路径,请使用 './' .
要查找父路径,请使用 '../' .
要查找父级的父级,请使用 '../../' .

这些不能与gcb一起使用。然而。

MWE

Simulink ,如果我创建一个 block 并选择它,
然后输入Matlab窗口:

get_param([gcb], 'ObjectParameters')

我获得了 block 参数列表,
其中任何一个都可以使用 set_param([gcb], <parameter>, <value>) 进行更改.

参数列表中包含 Parent ,它提供父路径。
是否有一个命令可以获取路径并删除直到下一个 '/'
(或更有用的是,充当反向命令 fullfile ?)
(有人提到了正则表达式,所以我正在研究它们。)

另外,(对我来说不太重要,但对后代来说),
有没有可以找到子路径的命令?

最佳答案

您可以使用get_param(<blockname>, 'Parent')为当前 block 的父 block 。要获取父层和更高层的父层,您需要创建自己的函数,如下所示:

function blk = getParent(blk, n)
for k=1:n
    blk = get_param(blk, 'Parent');
end
end

所以getParent(gcb, 1)为您提供父项,getParent(gcb, 2)给你 parent 的 parent 等等。

要查找 child ,您应该使用 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选项也是如此。

关于matlab - Simulink:获取层次结构中较高模块的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36626641/

相关文章:

android - 如何在jni中指定当前工作路径

c++ - CGIR 断言 'fitsType<size_t>()' 失败

c++ - MATLAB中矩阵乘积相等的高效求解

arrays - 查找每个值最后一次出现的索引

user-interface - MATLAB gui创建者GUIDE是否像我想的那样糟糕?还有其他选择吗?

路径中的 Android 位图

bash - 使用 bash tab-completion 忽略路径条目

matlab - 将变量传递给 MATLAB 中的类

java - 如何在 Java 代码中接收 Simulink 常量值?

matlab - 以编程方式打开 Simulink MATLAB 功能 block 的代码