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

Octave中如何获取函数传入的所有参数并转为列表用于后续计算

在MATLAB中可以直接用内置的varargin关键字实现动态参数收集,无需自定义额外方法,具体实现逻辑如下:

  • 第一步修改函数定义,将参数列表替换为varargin,该变量会自动存储所有传入的参数,格式为元胞数组
  • 如果需要保留前两个固定参数的命名,也可以写成function f=myFunc(arg1,arg2,varargin),varargin会存储除前两个参数外的剩余入参
  • 用nargin内置变量可以获取当前传入的参数总数,用来做最少2个参数的合法性校验
  • 用cell2mat()可以将varargin元胞数组转为普通数值数组,直接传入prod()计算乘积

完整示例代码

function f = myFunc(varargin)
    % 入参数量校验
    if nargin < 2
        error('myFunc 要求至少传入2个参数');
    end
    % 所有入参转为数值数组
    all_args = cell2mat(varargin);
    % 计算乘积
    f = prod(all_args);
end

调用测试

执行myFunc(2.0,3.4,1.6)会返回计算结果10.88,和预期一致。

如果需要保留前两个参数的显式命名,可以用以下写法:

function f = myFunc(arg1,arg2,varargin)
    if nargin < 2
        error('myFunc 要求至少传入2个参数');
    end
    % 拼接所有参数
    all_args = [arg1, arg2, cell2mat(varargin)];
    f = prod(all_args);
end

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 11:54:03