zoukankan      html  css  js  c++  java
  • 【matlab】设定函数默认参数

    C++/java/python系列的语言,函数可以有默认值,通常类似如下的形式:

    funtion_name (param1, param2=default_value, ...)
    

    到了matlab下发现并不能这样写。那是不是说matlab中希望函数有默认参数,就一定要很麻烦地,使用nargin来辅助实现呢?比如:

    % 第三个参数有默认值
    function [result]=some_fun(param1, param2)
        if (nargin<3)
            param3 = 'default_param3_value';
        end
        ...
    end 
    

    上面这种写法缺点明显:如果有多个参数有默认值,那么nargin的判断语句太多了。

    那就试试inputParser。比如:

    function [result]=some_fun(varargin)
        ip = inputParser;
    
        %接下来设定默认值,还可以指定是必须参数还是可选参数等。
        ip.addParamValue('use_gpu', 1);
        %其他还有 ip.addParameter(),ip.addRequired()等函数可用
        ...
        %然后将输入的参数进行处理,如果有不同于默认值的那就覆盖掉
        ip.parse(varargin{:});
        result=ip.Results;
    end
    
  • 相关阅读:
    bzoj4517 [Sdoi2016]排列计数
    bzoj1415 [Noi2005]聪聪和可可
    两个系列的书
    陈天权:数学分析教学中学到的和想到的
    广义范德蒙德行列式计算
    蒙特卡罗方法入门
    LaTeX 文字带边框
    LaTeX算法排版
    常用工具
    常用算法
  • 原文地址:https://www.cnblogs.com/zjutzz/p/5996161.html
Copyright © 2011-2022 走看看