matlab 脚本中是否使用了某些 matlab 例程?

2024-02-07

我正在运行一个大的 m 文件,该文件不是我自己编写的,并且取决于某些子函数。我想知道所有嵌套函数中的任何位置是否使用了特定函数(在我的例子中是函数 eig.m (用于计算特征值))。 有没有快速的方法来做到这一点?

亲切的问候, 科恩


您可以使用半文档化的功能getcallinfo (see 亚尔奥特曼的博客 http://undocumentedmatlab.com/blog/function-definition-meta-info有关它的更多信息):

getcallinfo

Returns 被调用函数以及他们的第一行和最后一行
此功能不受支持,可能会在未经许可的情况下更改或删除 在未来版本中通知。

一般用途getcallinfo

让我们创建一个示例脚本其中包含子功能(这有效在Matlab R2016b中 https://es.mathworks.com/help/matlab/matlab_prog/create-functions-in-files.html或更新版本)并将其另存为'filename.m'。如果有,该过程也有效嵌套函数,或者如果主文件是function而不是脚本。

x = input('');
y = find(x);
z = f(norm(x));
disp(z)
function u = f(v)
    u = -log2(v) + log2(pi);
end

Then:

>> g = getcallinfo('filename.m');

给你一个嵌套结构数组包含有趣的信息,包括函数调用。第一个条目,g(1), 指主文件。可能还有子函数或嵌套函数的更多条目。在这种情况下,g(2)指的是子功能f.

>> g(1).calls.fcnCalls
ans = 
  struct with fields:    
    names: {'input'  'find'  'norm'  'disp'  'log2'  'log2'  'pi'}
    lines: [1 2 3 4 6 6 6]

>> g(1).calls.innerCalls
ans = 
  struct with fields:    
    names: {'f'}
    lines: 3

>> g(2).calls.fcnCalls
ans = 
  struct with fields:    
    names: {'log2'  'log2'  'pi'}
    lines: [6 6 6]

>> g(2).calls.innerCalls
ans = 
  struct with fields:    
    names: {1×0 cell}
    lines: [1×0 double]

其他领域的g give 更多细节,比如名字

>> g(1).name
ans =
filename

>> g(2).name
ans =
f

or type

>> g(1).type
ans = 
  Script with no properties.

>> g(2).type
ans =
subfunction

如何确定给定函数是否在文件中的任何位置使用

Obtain g如上所述,然后在所有中查找所需的函数名称calls.fcnCalls.names的领域g:

g = getcallinfo('filename.m');
sought_function = 'log2'; % or 'eig' in your case
t = arrayfun(@(x) x.calls.fcnCalls.names, g, 'UniformOutput', false);
    % collect all names of called functions. Gives a cell array of cell arrays
    % of strings (character vectors)
t = [t{:}]; % de-nest: concatenate into cell array of strings
result = any(strcmp(t, sought_function)); % compare with sought function name
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

matlab 脚本中是否使用了某些 matlab 例程? 的相关文章

  • 获取ERLANG中的最长公共子序列

    我是这个 ERLANG 的新手 我了解基础知识 这就像计划 但范围更广 我知道如何创建一个函数 但在创建一个获取最长公共子序列的函数时遇到问题 lcs str1 str2 是一个接受两个字符串并输出一个整数的函数 lcs algorithm
  • 为什么我的函数将布尔值更改为“on”?

    所以我是 php 编程世界的新手 我正在在线学习和其他形式等 但我找不到任何东西来帮助回答我的问题 这就是我在这里的原因 任何帮助当然不胜感激 谢谢 我想将下面的代码变成我可以调用的函数 它的工作原理如下所示 如果我选中表单中的复选框 它会
  • 如何在 matlab 中创建由多个 3d 图像数据数组组成的数组

    我正在阅读 15 张图片imagedata imread imagename jpg 它的大小总是320 by 320 by 3 如何将数据放入数组中 使用 for for 循环 以便在访问新数组的第一个元素时获得输入的第一个图像的 RGB
  • 如何更改Plotyy第二轴的颜色和字体大小?

    我使用 MATLAB 的plotyy 函数绘制了两条曲线 AX H1 H2 plotyy voltage span amplitude voltage span Ca SR The problem is that I cannot chan
  • 了解 fminunc 参数和匿名函数、函数处理程序

    请多多包涵 问题在最后 我试图找出 fminunc 调用方式的差异 这个问题源于 Andrew Ng 在他的 Coursera 机器学习课程中的第 3 周材料 我正在回答这个问题 Matlab Andrew Ng 机器学习课程中 t cos
  • 图像处理 - 使用 opencv 进行服装分割

    我正在使用 opencv 进行服装特征识别 第一步 我需要通过从图像中移除脸部和手来分割 T 恤 任何建议表示赞赏 我建议采用以下方法 Use 阿德里安 罗斯布鲁克的用于检测皮肤的皮肤检测算法 谢谢罗莎 格隆奇以获得他的评论 在方差图上使用
  • Java中反射是如何实现的?

    Java 7 语言规范很早就指出 本规范没有详细描述反射 我只是想知道 反射在Java中是如何实现的 我不是问它是如何使用的 我知道可能没有我正在寻找的具体答案 但任何信息将不胜感激 我在 Stackoverflow 上发现了这个 关于 C
  • 给定协方差矩阵,在Matlab中生成高斯随机变量

    Given a M x M期望的协方差 R 以及所需数量的样本向量 N计算一个N x M高斯随机向量 X在普通 MATLAB 中 即不能使用r mvnrnd MU SIGMA cases 不太确定如何解决这个问题 通常你需要一个协方差并且意
  • 检测数据集中线性行为的算法

    我已经发布了一个关于对数据集的一部分进行多项式拟合的算法 https stackoverflow com q 17595932 2320757前一段时间收到一些建议去做我想做的事 但我现在面临另一个问题 我尝试应用答案中建议的想法 我的目标
  • 用反射“铸造”

    考虑以下示例代码 class SampleClass public long SomeProperty get set public void SetValue SampleClass instance decimal value valu
  • R:如何应用输出多列数据帧的函数(使用 dplyr)?

    我想查找数据框中某一特定列与所有其他列之间的相关性 p 值和 95 CI broom 包提供了一个示例 说明如何使用带有 dplyr 和管道的 cor test 在两列之间执行此操作 对于 mtcars 和 mpg 列 我们可以与另一列进行
  • 这种间接函数调用有什么好处?

    我在库中找到了以下代码 class Bar public bool foo int i return foo i private virtual bool foo int i 0 现在我想知道 为什么要使用这种间接方式 是否有任何理由说明上
  • 获取枚举实例的名称[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 假设我有这个枚举 public enum MyEnum ValueOne 1 ValueTwo 2 ValueThree 3 然后
  • 点击事件的事件处理程序自动触发 - jQuery [重复]

    这个问题在这里已经有答案了 可能的重复 为什么单击事件处理程序会在页面加载后立即触发 https stackoverflow com questions 7102413 why does click event handler fire i
  • 在 GCC 和 Clang 下,使用 lambda 的简单 RAII 包装器的复制初始化意外失败

    我在创建一个简单的 RAII 包装器时遇到了一个意想不到的问题 更不用说下面代码的逻辑不完整性了 复制构造函数和赋值运算符未删除等 这意味着是一个SSCCE 令我印象深刻的是复制初始化我的包装器与临时 lambda 的结果会导致编译错误 而
  • 将 C# 反射代码移植到 Metro-Ui

    我正在尝试移植使用反射的现有 C 类 通用工厂 但我无法编译这段代码 Type types Assembly GetAssembly typeof TProduct GetTypes foreach Type type in types i
  • 如何在 DB2 中创建返回序列值的函数?

    如何在 DB2 中创建一个从序列中获取值并返回该值的函数 应该可以在 select 或 insert 语句中使用该函数 例如 select my func from xxx insert into xxx values my func 基本
  • 如何实现返回“弹出”元素(即数据/值)的“Pop”函数? (链表堆栈)

    对于如何实现同时弹出元素并将其作为返回值返回的单个函数感到困惑 到目前为止 我所看到的都是 pop 函数 它们返回指向堆栈新头的指针 这是一个开始 但是 define VALUE int typedef struct node t VALU
  • 如何知道Matlab中系统命令执行过程中经过的时间?

    我有一个运行系统脚本的 Matlab 代码 该脚本可能会因命令运行而停止 我想知道是否有一种方法可以让程序知道它是否花费了很长时间并执行其他操作 这是代码 tic status cmdout system iperfcmd The prog
  • 不接受任何内容也不返回任何内容的函数接口[重复]

    这个问题在这里已经有答案了 JDK中是否有一个标准的函数式接口 不接受也不返回任何内容 我找不到一个 像下面这样 FunctionalInterface interface Action void execute 可运行怎么样 Functi

随机推荐

  • html 未在 wamp 中解析为 php

    我在 htaccess 文件中使用此代码片段将 html 解析为 php
  • 如何在Eclipse中支持UTF-8编码

    如何在 eclipse 中添加 UTF 8 支持 我想添加例如俄语 但 eclipse 不支持它 我应该怎么办 请指导我 Try this 1 Window gt Preferences gt General gt Content Type
  • LINQ 是对象关系映射器吗?

    LINQ 是一种对象关系映射器吗 LINQ 本身是一组语言扩展 可帮助查询 提高可读性并减少代码 LINQ to SQL 是一种 OR 映射器 但它并不是特别强大 这实体框架 http msdn microsoft com en us li
  • 警告“导入的库具有相同的名称,但它们不具有相同的名称”

    我在类中有以下导入语句 import package dart web toolkit ui dart import util flex table builder dart as ftBldr import factors list vi
  • 在 C++ 中创建 setter 函数的最佳方法

    我想编写一个通过移动或复制接收参数的模板函数 我使用的最有效的方法是 void setA A a m a std move a 在这里 当我们使用的是 A a setA a lt lt one copy ctor one move ctor
  • 包含 boost/Optional.hpp 时出现 C2143 语法错误

    我遇到了一个我无法理解的编译时错误 我尝试使用boost optional在我的代码中 一旦我包含boost optional hpp我无法再构建我的项目了 如果我注释掉这个 include 语句 它就会起作用 我什至没有任何实际用途boo
  • 如何在 bash 中不使用 printf 将字符转换为 ASCII

    ascii printf d 1 我目前正在使用此函数将字符转换为 ASCII 但是我只想将函数的结果存储为变量而不打印 ascii 我该怎么办呢 请记住 我总共只使用了几个小时的 bash 如果这是一个愚蠢的问题 我很抱歉 在 bash
  • 如何解决此 RCurl 错误:“SSL 证书问题:证书已过期”?

    我只是想获得下面一个简单的 URL 响应 但出现以下错误 该网站是有效的 我过去已经可以从该网站提取数千次信息 jsonString lt getURL full url Error in function type msg asError
  • 如何限制对ravendb管理面板的访问?

    当默认情况下运行 Raven Server exe 时 管理面板在 IP PORT 地址处可见 如何限制仅特定用户访问此面板 Steve 我们将 RavenDB 作为 Windows 服务运行 并使用 Windows 身份验证来控制访问 如
  • 将画布保存到图像文件会保存空白黑色图像

    首先 我对 UWP 和 XAML 还很陌生 我在我的 uwp 上编写了一个简单的代码 其中有一个画布 命名为 ImageHolder 里面有一个图像和文本块 我的主要问题是 每当我尝试使用 RenderTargetBitmap 将画布保存到
  • 如何在git的post-receive钩子中处理分支上的文件

    我有一个远程服务器 我在上面创建了一个裸 git 存储库 我想创建一个钩子 以便给定的脚本在任何给定分支上收到的最新代码上运行 我知道post receive可以使用钩子来实现它 但是我想做以下事情 找到收到代码的分支 在临时位置检出代码并
  • Python:交织两个列表[重复]

    这个问题在这里已经有答案了 执行以下操作的 pythonic 方法是什么 我有两个清单a and b相同长度的n 我想形成一个列表 c a 0 b 0 a 1 b 1 a n 1 b n 1 c item for pair in zip a
  • jQuery / JavaScript 中的自定义滚动条数学

    我目前正在开发一个项目 该项目使用自定义滚动插件 由我编写 来允许元素在触摸设备以及桌面浏览器中滚动 一切都工作正常 包括 iOS 的速度和减速度 然而 剩下的唯一问题是当用户滚动时计算滚动条的顶部 或左侧 位置 我用以下公式计算了滚动条的
  • 在我的 Express.js Jest 测试中找不到内存泄漏

    我现在花了一些时间尝试在 Jest 测试中查找内存泄漏 尽管我已经成功解决了一些问题 但仍然有相当多的内存在测试套件之间泄漏 具体来说 当我npm test 所有测试套件 我得到以下输出 PASS src suite1 test ts 71
  • iPhone 消息应用程序中的上滑菜单是如何实现的?

    在我的 iPhone iOS 8 0 2 上的消息应用程序中 当您撰写消息并单击相机图标插入图像时 底部会出现一个 向上滑动 菜单 它包含一些按钮 以及我可以插入到消息中的最近拍摄的照片 这个菜单叫什么名字 已经可以通过本地课程获得了吗 图
  • 无法搜索联系人

    所以我制作了一个静态联系人列表 并尝试添加搜索栏 但是我无法使用搜索栏搜索联系人 当我单击搜索栏时 它会打开但随后关闭 键盘会弹出一会儿 然后就会关闭 这个想法是使搜索具有预测性 因此当输入名称时 它将根据数据库中的名称列出已关闭的名称 有
  • 删除 JSON 元素

    我想从 JSON 中删除 JSON 元素或一整行 我有以下 JSON 字符串 result FirstName Test1 LastName User FirstName user LastName user FirstName Ropbe
  • Haskell:映射函数应用

    我在 Haskell 中进行的部分计算会产生映射的函数列表Float to Float 我想对所有这些函数应用一个参数 如下所示 x Float functions Float gt Float map f gt f x functions
  • 如何检查空结构?

    我定义了一个结构体 type Session struct playerId string beehive string timestamp time Time 有时我给它分配一个空会话 因为 nil 是不可能的 session Sessi
  • matlab 脚本中是否使用了某些 matlab 例程?

    我正在运行一个大的 m 文件 该文件不是我自己编写的 并且取决于某些子函数 我想知道所有嵌套函数中的任何位置是否使用了特定函数 在我的例子中是函数 eig m 用于计算特征值 有没有快速的方法来做到这一点 亲切的问候 科恩 您可以使用半文档