동일한 입력을 전달하는 두 가지 다른 방법으로 Matlab에서 함수를 쓰는 방법을 알고 싶습니다.Matlab에서 입력을 전달하는 두 가지 다른 방법으로 함수 쓰기
이 중 하나의 예는 내장 함수 lsqcurvefit
입니다. 이 같은 입력을 전달할 수 있습니다 :
x = lsqcurvefit(fun,x0,xdata,ydata,lb,ub,options)
마지막 3은 선택, 또는 당신이 이런 식으로 호출 할 수 있습니다 :
x = lsqcurvefit(problem)
곳 problem
은 동일한 입력을 포함하는 struct
입니다. 이 경우 입력이 하나만 필요합니다.
내 질문은 : 어떻게 두 가지 방법으로 동일한 입력을받을 수있는 함수를 작성합니까?
설명서를 살펴본 결과 내가 찾지 못하는 단어 나 용어를 알 수 없으므로 찾지 못했을 수 있습니다. 누군가 나를 지적 할 수 있습니까? 나는 그것이 매우 간단하다고 확신한다. 아마 그것은 사소한 것이고 나는 그것을 놓치고있는 중입니까?
벤
편집 : 내가 무엇을 찾고있는 수하는 '기능 오버로드'와 '함수 서명'것 같다.
'vargin'와'nargin'는, 그냥 재미를 위해이 아이디어를 밀어 수 있습니다. 무엇을 나는 두 가지 방법으로 입력을 전달하려면, 키워드. – OmG
@OmG 좋아하지만, 두 가지가 하나의 통과 것을 포함' 구조체를 다른 내부 구조와 함께. 그러면 nargin 내가 한 입력 있고 그 유형을 차별화 할 수 없을 것입니다 말해 줄 것이다. 그럴 수있는 방법이 있나요? – Ben
내가 nargin 같은 느낌과 varargin 가난한 방법입니다 기능 행동을 일반적으로 바꿉니다. 행동을 바꾸기 위해 인풋의 수에 의존 할 필요는 없습니다. 아래의 회신 후, 나는 이제 "함수 오버로드"와 비슷한 것을 찾고 있음을 알게되었습니다. – Ben