MATLAB中nargin和nargout的妙用

2021-09-09 06:44:54 字數 1405 閱讀 5940

matlab提供了兩個獲取函式引數數目的函式:nargout與nargin。在函式內部使用時,nargin 和 nargout分別表明有輸入和輸出引數數量。若在函式外部使用, nargin 和nargout對給定的函式,表明輸入和輸出引數數量。如果乙個函式有可變數量的引數,引數數量為負值。

nargin:number of function input arguments,指的是乙個函式的輸入變數的個數。

用法:nargin或nargin(fx), 其中fx指的是乙個函式名或著函式控制代碼。

當乙個函式的引數中含有varargin變數時,這時候返回值為負。

function test(a,b)

switch nargin

case 1

c = a+a;

case 2

c = a+b;

otherwise

c = 0;

enddisp(c)

end

如果輸入兩個變數,返回兩個變數的和。如果是乙個變數,則為該變數的兩倍。如果未輸入變數,則返回0.

同樣也可以使用nargin(『函式名』),返回值為函式的接受引數個數。

但是如果函式接受引數中包含varargin引數時,返回值為負值。

例如:

nargin('test')
但是如果我們將原函式變為:

function test(a,b,varargin)

switch nargin

case 1

c = a+a;

case 2

c = a+b;

otherwise

c = 0;

enddisp(c)

end

此時

nargin('test')=-3
比如我們有這樣乙個函式需求,要求使用者不想返回引數時作圖展示運算結果,但是如果使用者要求輸出具體結果時就不做圖展示,返回運算結果就行。

unction c = test(a,b)

switch nargout

case 1

c = [sin(1:a),cos(1:b)];

otherwise

plot([sin(1:0.1:a),cos(1:0.1:b)])

endend

當在命令列輸入

test(10,20)
繪製圖形:

當輸入:

c = test(10,20)
會展示具體的數值資訊。

MATLAB中nargin 的用法

nargin是用來判斷輸入變數個數的函式,這樣就可以針對不同的情況執行不同的功能。通常可以用他來設定一些預設值,如下面的函式。例子,函式test1的功能是輸出a和b的和。如果只輸入乙個變數,則認為另乙個變數為1,如果兩個變數都沒有輸入,則預設兩者均為1。function y test1 a,b if...

初學筆記 matlab中的nargin系列函式

1 nargin nargin 用於調控function的執行中的變數的輸入個數 用於判定輸入變數的個數,從而在不同變數個數的 狀況下實現不同的 功能 因此一般在function裡面會設定好預設值 只有乙個輸出變數,和多個輸入變數 如果輸入變數只有a個,那麼在run這個function的時候,只能r...

matlab中hist和histogram的區別

matlab 早期版本使用hist和histc函式作為建立直方圖和計算 bin 計數的主要方法。這些函式適用於某些常規用途,但總體能力有限。基於這些原因 及其他原因 不建議在新 中使用hist和histc histogram histcounts和discretize函式顯著提高了 matlab 中...