回覆列表
  • 1 # ispru4585

    nargin為“number of input arguments”的縮寫。 在matlab中定義一個函式時, 在函式體內部, nargin是用來判斷輸入變數個數的函式。在matlab命令視窗中輸入help nargin或者doc nargin即可獲得該函式的幫助資訊。nargin透過呼叫當前正在執行的函式返回輸入引數的數量,只在函式體內使用nargin語法功能。nargin(fx)在函式fx的定義宣告中返回輸入引數的個數。如果函式包括varargin其定義,那麼nargin返回的輸入個數為負。例如函式foo輸入有 a,b,和varargin三個引數,那麼nargin("foo”)返回值為-3。nargout的作用是在matlab中定義一個函式時, 在函式體內部, nargout指出了輸出引數的個數(nargin指出了輸入引數的個數)。 特別是在利用了可變引數列表的函式中, 用nargout獲取輸出引數個數很方便。語法nargoutnargout(fun)相關:varargout、nargin、varargin應用舉例function varargout = foo(varargin)fprintf("How many output arguments? %d\n", nargout);for k=1:nargoutvarargout(k) = {varargin{k}};endend輸出結果>> ret = foo(1, 2, 3)How many output arguments? 1ret = 1>> [retA, retB] = foo(1, 2, 3)How many output arguments? 2retA = 1retB = 2>> [retA, retB, retC] = foo(1, 2, 3)How many output arguments? 3retA = 1retB = 2retC = 3

  • 2 # 使用者5189701024573

    nargin,nargout,判斷輸入、輸出引數的個數是否滿足要求。

    以輸入為例,matlab自帶數字轉字串函式

    function s = num2str(x, f)

    一開始會判斷輸入引數的個數

    if nargin

    error(message("MATLAB:num2str:NumericArrayUnspecified"))

    end

    如果沒有輸入引數,就會給出錯誤資訊提示;

    這就是說該函式形式上有兩個輸入引數,實際上只要輸入第一個就可以了。

    後面還有隻有一個引數時,對輸入引數的判斷和處理

    if nargin

    總體就是這個意思。

  • 中秋節和大豐收的關聯?
  • 讀帖比臨帖更重要嗎?