이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

function

함수 이름, 입력, 출력 선언

설명

예제

function [y1,...,yN] = myfun(x1,...,xM)은 입력 x1,...,xM을 받고 출력 y1,...,yN을 반환하는 myfun이라는 함수를 선언합니다. 이 선언문은 함수에서 첫 번째 실행 가능한 라인에 있어야 합니다. 유효한 함수 이름은 영문자로 시작하고 영문자, 숫자, 밑줄을 포함할 수 있습니다.

함수는 다음과 같은 곳에 저장할 수 있습니다.

  • 함수 정의만 포함하는 함수 파일. 이 파일의 이름은 파일 내 첫 번째 함수 이름과 동일해야 합니다.

  • 명령과 함수 정의를 포함하는 스크립트 파일. 함수들은 파일의 끝에 있어야 합니다. 스크립트 파일은 파일 내 함수와 동일한 이름을 가질 수 없습니다. R2016b 이상에서는 스크립트에서 함수가 지원됩니다.

파일에는 여러 개의 로컬 함수나 중첩 함수가 포함될 수 있습니다. 파일의 가독성 향상을 위해, end 키워드로 각 함수의 끝을 표시하십시오. end 키워드는 다음과 같은 경우 필요합니다.

  • 파일에 있는 함수 내에 중첩 함수가 포함된 경우.

  • 함수가 함수 파일 내에서 로컬 함수이며 파일에 있는 로컬 함수가 end 키워드를 사용하는 경우.

  • 함수가 스크립트 파일 내의 로컬 함수인 경우.

예제

모두 축소

average.m이라는 파일에 벡터 입력을 받고, 값의 평균을 계산하고, 단일 결과를 반환하는 함수를 정의합니다.

function y = average(x)
if ~isvector(x)
    error('Input must be a vector')
end
y = sum(x)/length(x); 
end

명령줄에서 함수를 호출합니다.

z = 1:99;
average(z)
ans =
    50

에서 피적분 함수의 값을 계산하고 0부터 까지 곡선 아래쪽 면적을 계산하는 스크립트를 integrationScript.m이라는 파일에 정의합니다. 피적분 함수 을 정의하는 로컬 함수를 포함합니다.

참고: 스크립트에 함수를 포함시키려면 MATLAB® R2016b 이상이 필요합니다.

% Compute the value of the integrand at 2*pi/3.
x = 2*pi/3;
y = myIntegrand(x)

% Compute the area under the curve from 0 to pi.
xmin = 0;
xmax = pi;
f = @myIntegrand;
a = integral(f,xmin,xmax)

function y = myIntegrand(x)
y = sin(x).^3;
end
y =

    0.6495


a =

    1.3333

stat.m이라는 파일에 입력 벡터의 평균과 표준편차를 반환하는 함수를 정의합니다.

function [m,s] = stat(x)
n = length(x);
m = sum(x)/n;
s = sqrt(sum((x-m).^2/n));
end

명령줄에서 함수를 호출합니다.

values = [12.7, 45.4, 98.9, 26.6, 53.1];
[ave,stdev] = stat(values)
ave =
   47.3400
stdev =
   29.4124

stat2.m이라는 파일 내에서 2개의 함수를 정의합니다. 여기서 첫 번째 함수가 두 번째 함수를 호출합니다.

function [m,s] = stat2(x)
n = length(x);
m = avg(x,n);
s = sqrt(sum((x-m).^2/n));
end

function m = avg(x,n)
m = sum(x)/n;
end

avg 함수는 로컬 함수입니다. 로컬 함수는 동일 파일 내의 다른 함수에서만 사용될 수 있습니다.

명령줄에서 stat2 함수를 호출합니다.

values = [12.7, 45.4, 98.9, 26.6, 53.1];
[ave,stdev] = stat2(values)
ave =
   47.3400
stdev =
   29.4124

R2006a 이전에 개발됨