【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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM