nargin
絕對是這樣做的最簡單的方法。此外,它通常是很好的做法使用nargchk驗證輸入參數的數量:
function e = testFunc(a,b,c,d)
error(nargchk(2, 4, nargin, 'struct'));
% set default values
if nargin<4, d = 0; end
if nargin<3, c = 0; end
% ..
c = a*b + c*d;
end
...它作爲一種方法來確保正確的參數個數傳遞。在這種情況下,至少需要兩個參數,最大值爲四個。
如果nargchk
沒有檢測到錯誤,執行恢復正常,否則會產生錯誤。例如,調用testFunc(1)
生成:
Not enough input arguments.
UPDATE:
narginchk(2,4);
您:一個新的函數,而R2011b narginchk
,它取代了使用棄用nargchk
+ error
上方觀察的引入可以使用如下功能:exist and isempty檢查變量是否存在以及它是否分別空是:
if ~exist('c','var') || isempty(c)
c = 10;
end
,它允許你打電話給你的功能,如:testFunc(1,2,[],4)
告訴它使用的默認值c
,但仍然給人一種價值爲d
您也可以使用varargin接受可變數量的參數。
最後一個強大的方式來解析和驗證輸入的命名是使用inputParser
要查看示例和傳遞參數和設置默認值的其他替代方案,檢查this post,其意見爲好。
你想在Matlab中做什麼? – 2009-11-15 13:25:59