저는 Matlab 함수를 작성하고 있었으며 대화식 세션에 복사하여 붙여 넣기를 원했습니다. 일부는 nargin
문장 (예 : if nargin < 1; a = 0; end;
)이었으며 할당 된 내 작업 공간에 nargin
의 값이 11005 인 것으로 나타났습니다. 아무도 이것이 무엇인지, 함수 (함수 외부)에 사용되는지 여부 및 0으로 설정하는 데 문제가 있는지 여부를 알고 있습니까?함수 밖의 nargin은 무엇입니까?
2
A
답변
3
함수 내에서 사용되는 경우 nargin
은 해당 함수로 전달되는 매개 변수 수를 제공합니다. 문자열 인수 fn
과 함께 사용되는 것은 내장 함수이며 함수 fn
에 의해 취해진 매개 변수의 수를 반환합니다. 당신은 하지 작업 영역에서 매개 변수없이 호출한다 : 현재 실행중인 함수에 대한 호출에 전달 된 입력 인수의 수를 반환 nargin
합니다. 이 nargin 구문은 함수 본문에서만 사용하십시오.
당신은 할 수 있지만, 그 다음 두 번째 의미를 잃어 버리게 한 이후, nargin
에 값을 할당하지 않도록해야합니다 :
nargin('sparse')
ans =
6
nargin = 0;
nargin('sparse')
Index exceeds matrix dimensions.
그것을 가지고 * 가능성 *이 값 때문에 글로벌 작업 공간 범위에서 (때 함수로 사용되지 않고 변수로 사용됨) 사용하지 않으므로 할당되지 않습니다. * 미확인 - 물건의 행동 종류. * BTW, 당신은 여전히 매개 변수의 수를 특정 기능의 특징을 가지고 (작업 공간 수준에서) 기능으로 사용할 수 있습니다. – Acorbe
[docs] (http://www.mathworks.com/help/matlab/ref/nargin.html)에서 : "'nargin'은 현재 실행중인 함수에 대한 호출에서 전달 된 입력 인수의 개수를 반환합니다.이' nargin' 구문 *은 함수의 몸체에서만 *. " – plesiv