文章出處

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

文章列表


不含病毒。www.avast.com
全站熱搜
創作者介紹
創作者 大師兄 的頭像
大師兄

IT工程師數位筆記本

大師兄 發表在 痞客邦 留言(0) 人氣()