You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Matlab/Octave是否有类似Mathematica的内置符号查询功能?

当然有!Matlab 和 Octave 都提供了类似 Mathematica 中 Names 函数的功能,用来查询特定前缀或上下文/命名空间下的符号、函数,下面分别说明具体用法:

Matlab 中的实现方式

1. 查找特定前缀的内置函数/符号

如果你想找所有以某个前缀(比如 list)开头的内置函数,最直接的方式是用 which 命令搭配通配符,加上 -all 参数可以列出所有匹配项的路径:

which list* -all

如果要筛选工作区中以特定前缀命名的变量,直接用 whowhos 加通配符即可:

who list*  % 仅列出变量名
whos list* % 列出变量名及详细信息

2. 查询特定上下文/工具箱的符号

Matlab 里的工具箱、自定义包就类似 Mathematica 的「上下文」:

  • 要查看某个工具箱下的所有函数,用 what 命令,比如查看 Signal Processing Toolbox 的内容:
    what signal
    
  • 对于自定义包(以 + 开头的文件夹结构),可以用 who 命令指定包名来列出包内的符号:
    who myPackage.*
    
    也可以用 dir 直接查看包文件夹的内容:
    dir('+myPackage')
    

Octave 中的实现方式

Octave 的用法和 Matlab 高度兼容,同时也有一些自己的便捷特性:

1. 查找特定前缀的函数/符号

同样可以用 which 搭配通配符和 -all 参数来匹配前缀:

which list* -all

如果你想获取所有已加载函数的列表并手动筛选,functions 函数可以返回所有函数的元胞数组,再通过字符串匹配过滤:

all_functions = functions();
func_names = {all_functions.name};
list_prefix_funcs = func_names(strncmp(func_names, 'list', 4));

工作区变量的筛选和 Matlab 一致,用 who list*whos list* 即可。

2. 查询特定上下文/包的符号

  • 对于内置工具箱或自定义包,what 命令同样适用:
    what signal
    
  • 自定义包的符号查询可以用 who 加包名,或者 dir 查看包文件夹:
    who myPackage.*
    dir('+myPackage')
    

额外小技巧:不管是 Matlab 还是 Octave,你都可以用 help list*(Octave)或 docsearch list*(Matlab)来快速查看匹配前缀的函数帮助文档,非常实用。

内容的提问来源于stack exchange,提问作者Dimitris

火山引擎 最新活动