MATLAB 함수의 선택적 인수
선택적 인수를 사용하여 MATLAB에서 함수를 선언하려면 어떻게해야합니까?
예 : function [a] = train(x, y, opt)
, 여기서 opt는 선택적 인수 여야합니다.
이를 수행하는 방법에 대한 몇 가지 다른 옵션이 있습니다. 가장 기본적인 방법은를 사용한 varargin
다음 nargin
, size
등을 사용하여 선택적 인수가 함수에 전달되었는지 여부를 확인하는 것입니다.
% Function that takes two arguments, X & Y, followed by a variable
% number of additional arguments
function varlist(X,Y,varargin)
fprintf('Total number of inputs = %d\n',nargin);
nVarargs = length(varargin);
fprintf('Inputs in varargin(%d):\n',nVarargs)
for k = 1:nVarargs
fprintf(' %d\n', varargin{k})
end
좀 더 우아하게 보이는 솔루션은 inputParser
클래스 를 사용하여 필수 및 선택적 함수에서 예상하는 모든 인수를 정의하는 것입니다. inputParser
또한 모든 인수에 대해 유형 검사를 수행 할 수 있습니다.
이를 수행하는 간단한 방법은 nargin (N 인수 입력)을 사용하는 것입니다. 단점은 인수 목록과 nargin 검사가 일치하는지 확인해야한다는 것입니다.
모든 입력은 선택 사항이지만 설정되지 않은 변수를 호출하면 함수가 오류와 함께 종료된다는 점을 기억할 가치가 있습니다. 다음 예제는 b 및 c의 기본값을 설정합니다. 가 없으면 종료됩니다.
function [ output_args ] = input_example( a, b, c )
if nargin < 1
error('input_example : a is a required input')
end
if nargin < 2
b = 20
end
if nargin < 3
c = 30
end
end
이것에 대한 좋은 방법은를 사용하지 않고를 사용 nargin
하여 변수가 설정되었는지 확인하는 것 exist('opt', 'var')
입니다.
예:
function [a] = train(x, y, opt)
if (~exist('opt', 'var'))
opt = true;
end
end
이런 식으로 수행하는 전문가는이 답변을 참조하십시오. 함수 호출에서 인수가 제공되는지 확인하는 방법은 무엇입니까?
참고 URL : https://stackoverflow.com/questions/6764062/optional-args-in-matlab-functions
'developer tip' 카테고리의 다른 글
javascript 및 짝수 / 홀수 클래스 생성을 사용하지 않고 html 테이블에 얼룩말 줄무늬를 만드는 방법은 무엇입니까? (0) | 2020.12.11 |
---|---|
대상 iPhone 시뮬레이터 매크로가 작동하지 않음 (0) | 2020.12.11 |
RelativeLayout에 프로그래밍 방식으로 뷰를 추가하는 방법은 무엇입니까? (0) | 2020.12.11 |
ASP.NET MVC의 권한 부여 특성 (0) | 2020.12.11 |
SQL Server에서 함수를 만드는 방법 (0) | 2020.12.11 |