You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MATLAB中获取匿名函数的参数名称?

获取MATLAB匿名函数的参数名称

确实,MATLAB没有直接返回匿名函数参数名称的内置函数——我之前折腾functions()命令的时候也发现它根本不包含这部分信息。不过我们有两种实用的方法来实现需求,下面一步步说:

方法1:解析函数的字符串表示(最常用)

这是最简单直接的方案,利用func2str()把匿名函数转换成字符串,再用正则表达式提取括号里的参数名。

举个你的例子:

% 定义匿名函数
f = @(x, y) x^2 + y^2;
% 转成字符串
func_str = func2str(f);
% 用正则匹配@(...)里的参数部分
param_match = regexp(func_str, '@\((.*?)\)', 'tokens');
% 分割参数并去除多余空格
param_names = strsplit(param_match{1}{1}, ',');
param_names = strtrim(param_names);

运行后param_names就是{'x', 'y'},完美符合需求。这个方法对大多数场景都适用,哪怕参数之间有没有空格都能处理。

方法2:利用底层元数据(进阶)

如果担心字符串解析的可靠性(比如极端情况下函数字符串被修改),可以通过MATLAB的元数据工具来获取。不过这个方法相对复杂,一般场景下方法1足够用了,这里给出示例供参考:

f = @(x, y) x^2 + y^2;
% 获取函数的元信息结构体
func_info = functions(f);
% 通过函数句柄的工作区获取参数名(依赖MATLAB的内部实现,版本可能有差异)
param_names = evalin(func_info.workspace, 'inputnames');

注意:这个方法依赖MATLAB的内部工作机制,不同版本可能会有变化,所以优先推荐方法1。

总结一下:MATLAB没有专门的内置函数干这件事,所以解析字符串是最稳妥、易维护的方案。

内容的提问来源于stack exchange,提问作者Sigfrid Stjärnholm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 09:05:09