English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
함수는 작업을 함께 수행하는 일련의 명령입니다. MATLAB에서는 함수가 별도의 파일에 정의됩니다. 파일 이름과 함수 이름은 같아야 합니다.
함수는 자신의 작업 공간(도메인 작업 공간으로도 알려짐)에서 변수를 처리하며, MATLAB 명령 프롬프트에서 접근하는 작업 공간(기본 작업 공간으로 알려짐)과는 다릅니다.
函数可以接受多个输入参数,并且可以返回多个输出参数。
함수는 여러 개의 입력 파라미터를 받을 수 있으며 여러 개의 출력 파라미터를 반환할 수 있습니다.-
함수 문장의 문법은 다음과 같습니다1function [out2, out1, ..., outN] = myfun(in2, ..., outN] = myfun(in3, in
온라인 예제다음과 같은 이름으로함수는 mymax로 이름을 지정해야 합니다mymax.m그 파일은 다섯 개의 숫자를 파라미터로 받아 가장 큰 숫자를 반환합니다.
함수 파일을 생성하여 mymax.m을 이름으로 지정하고 다음 코드를 입력합니다-
function max = mymax(n1, n2, n3, n4, n5) % 이 함수는 계산을 위해 사용됩니다 % 입력 다섯 개의 숫자 max = n1; if(n2 > max) max = n2; end if(n3 > max) max = n3; end if(n4 > max) max = n4; end if(n5 > max) max = n5; end
함수의 첫 번째 행은 키워드 function 키워드로 시작됩니다 그것은 함수 이름과 파라미터 순서를 제공합니다. 우리의 예제에서는mymax함수는 다섯 개의 입력 파라미터와 하나의 출력 파라미터를 가집니다.
함수 문장 뒤의 주석 행은 도움말 텍스트를 제공합니다. 다음 내용을 입력하면 이 행이 출력됩니다:
help mymax
MATLAB은 위의 문장을 실행하고 다음과 같은 결과를 반환합니다-
이 함수는 다음과 같은 최대 값을 계산합니다 five numbers given as input
함수를 호출할 수 있습니다-
mymax(34, 78, 89, 23, 11)
MATLAB은 위의 문장을 실행하고 다음과 같은 결과를 반환합니다-
ans = 89
익명 함수는 전통적인 프로그래밍 언어의 인라인 함수와 같이 단일 MATLAB 문장에서 정의된 것입니다. 그것은 MATLAB 표현식과 입력 및 출력 파라미터의 수로 구성됩니다.
익명 함수는 MATLAB 명령 프롬프트나 함수나 스크립트에서 직접 정의할 수 있습니다.
이렇게 하면 파일을 생성하지 않고 간단한 기능을 생성할 수 있습니다.
익명 함수를 생성하는 표현식의 문법은 다음과 같습니다
f = @(arglist)expression
이 예제에서는, 두 개의 숫자를 입력으로 받아 첫 번째 숫자를 두 번째 숫자의 권을 제공하는 이름을 'power'로 하는 익명 함수를 작성할 것입니다.
스크립트 파일을 생성하고 다음 코드를 입력하세요-
power = @(x, n) x.^n; result1 =7, 3) result2 =49, 0.5) result3 =10, -10) result4 =4.5, 1.5)
파일을 실행할 때, 그것은 표시합니다-
result1 = 343 result2 = 7 result3 = 1.0000e-10 result4 = 9.5459
명시적 함수 이외의 모든 함수는 파일에서 정의되어야 합니다. 각 함수 파일은 첫 번째로 등장하는 필수 메인 함수와 메인 함수 뒤에 메인 함수에서 사용되는 선택적인 서브 함수를 포함합니다.
주 파일의 파일 외부(명령 프롬프트나 다른 함수에서)에서 메인 함수를 호출할 수 있지만, 기능 파일 외부에서는 서브 함수를 호출할 수 없습니다.
서브 함수는 메인 함수와 그를 정의하는 함수 파일 내의 다른 서브 함수에만 보입니다.
이차 방정식의 루트를 계산하는 이름이 quadratic인 함수를 작성하겠습니다. 이 함수는 세 가지 입력을 가집니다: 이차 계수, 선형 계수, 상수 항. 그것은 귀환 루트를 할 것입니다.
함수 파일 quadratic.m은 메인 함수 quadratic와 구별식을 계산하는 서브 함수 disc를 포함합니다.
함수 파일 quadratic.m을 생성하고 그 안에 다음 코드를 입력하세요
function [x1,x2] = quadratic(a,b,c) % 이 함수는 % 이차 방정식이 필요합니다 % 그것은3개 입력 매개변수입니다 %x2x와 % 상수 항 % 그것은 루트를 반환합니다 d = disc(a,b,c); x1 = (-b + d) / (2*a); x2 = (-b - d) / (2*a); end % quadratic의 끝 function dis = disc(a,b,c) % 함수 계산 구별식 dis = sqrt(b^2 - 4*a*c); end % 서브 함수의 끝-function
명령 프롬프트에서 위의 기능을 다음과 같이 호출할 수 있습니다:
quadratic(2,4,-4)
MATLAB은 위의 문장을 실행하고 다음과 같은 결과를 반환합니다-
ans = 0.7321
또 다른 함수의 본체 내에서 함수를 정의할 수 있습니다. 이를 내장 함수라고 합니다. 내장 함수는 다른 어떤 함수의 어떤 구성 요소든지 모두 포함할 수 있습니다.
내장 함수는 다른 함수의 범위 내에서 정의되며, 포함 함수의 작업 공간에 대한 접근을 공유합니다.
내장 함수는 다음과 같은 문법을 따릅니다-
function x = A(p1, p2) ... B(p2) function y = B(p3) ... end ... end
그리고 이전 예제에서의quadratic함수. 그러나 이번에는 disc 함수가 내장 함수가 될 것입니다.
함수 파일을 생성하세요quadratic2.m,그리고 그 안에 다음 코드를 입력하세요-
function [x1,x2] = quadratic2(a,b,c) function disc % 내장 함수 d = sqrt(b^2 - 4*a*c); end % 함수 disc 종료 disc; x1 = (-b + d) / (2*a); x2 = (-b - d) / (2*a); end % 함수 quadratic 종료2
위의 함수를 명령 프롬프트에서 호출할 수 있습니다. 예를 들어:
quadratic2(2,4,-4)
MATLAB은 위의 문장을 실행하고 다음과 같은 결과를 반환합니다-
ans = 0.73205
프라이빗 함수는 한정된 다른 함수 그룹에만 보이는 메인 함수입니다. 함수 function(s)의 구현을 공개하지 않고 싶다면, 프라이빗 함수로 생성할 수 있습니다.
프라이빗 함수는 특별한 이름 Private를 가진 서브 폴더에 위치합니다.
그들은 부모 폴더의 함수에만 보입니다.
우리는 다시 작성하겠습니다quadratic함수. 그러나 이번에는 disc 함수가 구별식을 계산하는 프라이빗 함수가 될 것입니다.
작업 디렉토리 폴더에서 private라는 서브 폴더를 생성하고, 그 안에 다음 함수 파일 disc.m을 저장하세요
function dis = disc(a,b,c) % 함수 계산 구별식 dis = sqrt(b^2 - 4*a*c); end % 서브 함수 종료
작업 디렉토리에서 함수 quadratic을 생성하세요3.m, 그리고 그 안에 다음 코드를 입력하세요-
function [x1,x2] = quadratic3(a,b,c) % 이 함수는 다음을 반환합니다 % 일원二次 방정식이 필요합니다 그것은3개 입력 매개변수입니다 % 그들은 x2,x 와 % 상수 항 % 그것은 루트를 반환합니다 d = disc(a,b,c); x1 = (-b + d) / (2*a); x2 = (-b - d) / (2*a); end % quadratic 종료3
위의 함수를 명령 프롬프트에서 호출할 수 있습니다. 예를 들어:
quadratic3(2,4,-4)
MATLAB은 위의 문장을 실행하고 다음과 같은 결과를 반환합니다-
ans = 0.73205
전역 변수는 여러 함수에서 공유될 수 있습니다. 이를 위해 모든 함수에서 변수를 전역 변수로 선언해야 합니다
기본 작업 공간에서 변수에 접근하려면 명령 줄에서 변수를 선언하세요
전역 선언은 변수가 함수에서 실제로 사용되기 전에 발생해야 합니다. 대문자를 전역 변수의 이름으로 사용하는 것이 좋습니다. 이를 통해 다른 변수와 구분할 수 있습니다.
average.m이라는 함수 파일을 생성하고 다음 코드를 입력하세요-
function avg = average(nums) global TOTAL avg = sum(nums)/TOTAL; end
스크립트 파일을 생성하고 다음 코드를 입력하세요-
global TOTAL; TOTAL = 10; n = [34, 45, 25, 45, 33, 19, 40, 34, 38, 42]; av = average(n)
파일을 실행할 때, 다음과 같은 결과를 표시합니다-
av = 35.500