MATLAB에서 함수 생성

Ammar Ali 2021년11월25일
MATLAB에서 함수 생성

이 튜토리얼에서는 MATLAB에서 function 변수를 사용하여 함수를 생성하는 방법에 대해 설명합니다.

MATLAB에서 function 변수를 사용하여 함수 생성

Matlab의 함수는 주로 출력, 입력 및 함수 이름의 세 가지 요소로 구성됩니다. 함수를 정의하기 위해 변수 함수를 사용한 다음 출력, 함수 이름 및 함수의 입력을 정의합니다. 그런 다음 함수 내부에 코드를 작성합니다. 함수 이름은 영문자로 시작해야 하며 함수 이름에는 숫자, 숫자, 밑줄이 포함될 수 있습니다. 함수의 끝을 나타내기 위해 변수 end를 사용할 수 있습니다. 예를 들어 아래 코드를 참조하세요.

function outputs = function_Name(inputs)
    Your code
end

함수는 하나의 출력만 가질 수 있습니다. 예를 들어, 숫자 배열을 받아들이는 함수를 정의하고 함수의 출력은 배열의 평균이 됩니다. 아래 코드를 참조하십시오.

vect = [1 3 5]
averg = average(vect)


function a = average(v)
a = mean(v);
end

출력:

vect =

     1     3     5


averg =

     3

함수는 또한 두 개의 출력을 가질 수 있습니다. 예를 들어, 하나의 배열을 받아들이는 함수를 정의하고 배열의 평균과 표준 편차를 제공합니다. 아래 코드를 참조하십시오.

vect = [1 3 5]
[averg, stanD] = average(vect)


function [a,s] = average(v)
a = mean(v);
s = std(v);
end

출력:

vect =

     1     3     5


averg =

     3


stanD =

     2

스크립트 파일에서 함수를 정의할 수 있지만 코드 끝에서 정의해야 합니다. 또한 단일 파일에 여러 함수를 정의할 수 있으며 모든 함수는 코드 끝에 있어야 합니다. 한 함수는 다른 함수를 호출할 수도 있습니다. 예를 들어, 두 개의 함수를 정의할 수 있고 두 번째 함수는 첫 번째 함수를 호출할 수 있습니다. 입력을 확인할 수 있도록 입력 유효성 검사를 사용하여 함수를 정의할 수도 있습니다. 예를 들어, 입력이 정수인지 아닌지 확인하고 정수이면 연산을 수행하는 함수를 정의해 보겠습니다. 그렇지 않으면 오류를 보냅니다. 가변 인수를 사용하여 이를 수행할 수 있습니다. 아래 코드를 참조하십시오.

vect = 'a';
[averg, stanD] = average(vect)


function [a,s] = average(v)
arguments
        v {mustBeNumeric, mustBeFinite}
    end
a = mean(v);
s = std(v);
end

출력:

Error using Untitled>average
Invalid argument at position 1. Value must be numeric.

Error in Untitled (line 3)
[averg, stanD] = average(vect)

위의 코드에서 숫자 배열 대신 문자열을 전달했으며 Matlab은 값이 숫자여야 한다는 오류를 표시했습니다. 함수를 호출할 때 특정 입력 및 출력을 제공해야 합니다. 예를 들어, 두 개의 입력과 두 개의 출력이 있는 함수를 정의했다면 함수 호출 중에 두 개의 입력과 두 개의 출력을 정의해야 합니다. 그렇지 않으면 오류가 표시되지만 가변 수의 출력 및 입력으로 함수를 정의하려는 경우입니다. varargin 변수를 사용하여 함수의 변수 입력을 정의할 수 있습니다. 사용자가 입력한 입력 수를 알려주는 nargin 변수를 사용할 수 있습니다. 그런 다음 입력에 대한 조건을 지정할 수 있습니다. 예를 들어 사용자가 하나의 입력을 입력하면 이것이 출력이 되고 사용자가 두 개의 입력을 입력하면 이것이 출력이 되는 식으로 요구 사항을 정의할 수 있습니다. 예를 들어, 사용자가 입력한 입력 수를 제공하는 함수를 정의해 보겠습니다. 아래 코드를 참조하십시오.

NumInputs('a',2,"start")

function NumInputs(varargin)
    disp("Number of inputs: " + nargin)
    celldisp(varargin)
end

출력:

Number of inputs: 3
 
varargin{1} =
 
a
 
 
varargin{2} =
 
     2

 
 
varargin{3} =
 
start

varargout 변수를 사용하여 함수에서 변수 출력을 정의할 수도 있고 nargout 변수를 사용하여 사용자가 정의한 출력의 수를 추적할 수 있습니다. 예를 들어, 평균과 표준 편차를 제공하는 함수를 정의해 보겠습니다. 사용자가 출력을 하나만 정의하면 함수는 배열의 평균만 반환합니다. 사용자가 두 개의 출력 변수를 정의하면 함수는 표준 편차와 배열의 평균을 반환합니다. 아래 코드를 참조하십시오.

v = [1 2 6];
[m]= AVGSTD(v)
[mean,st] = AVGSTD(v)

function [m,varargout] = AVGSTD(v)
    m = mean(v);
    if(nargout>1)
        varargout{1} = std(v);
    end
end

출력:

m =

     3


mean =

     3


st =

    2.6458

위의 코드에서 AVGSTD() 함수를 두 번 호출했는데, 처음에는 하나의 출력만, 두 번째는 두 개의 출력으로 호출했습니다. 첫 번째 호출에서는 함수가 평균만 반환했지만 두 번째 호출에서는 평균과 표준 편차를 반환했습니다. 변수 인수를 사용하여 출력 수를 확인할 수도 있습니다. 예를 들어 사용자가 출력에 두 개 이상의 변수를 입력하려고 하면 이 함수가 두 개의 출력만 허용한다는 오류를 표시할 수 있습니다. Matlab에서 재사용 가능한 함수를 정의할 수도 있습니다. 이 함수는 파일에 저장되며 파일 이름을 사용하여 호출할 수 있습니다. 이러한 함수를 정의하려면 함수 이름으로 Matlab 파일의 이름을 지정하기만 하면 됩니다. 예를 들어, 함수의 이름이 평균인 경우 Matlab 파일의 이름은 같아야 합니다. 함수를 호출하려면 함수 파일이 있는 동일한 디렉토리에 다른 스크립트 파일을 생성해야 하며 스크립트 파일 내에서 해당 이름을 사용하여 함수를 호출할 수 있습니다.

작가: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

관련 문장 - MATLAB Function