산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> MATLAB

MATLAB - 함수

함수는 작업을 함께 수행하는 명령문의 그룹입니다. MATLAB에서 함수는 별도의 파일에 정의됩니다. 파일 이름과 함수 이름이 같아야 합니다.

함수는 로컬 작업 공간이라고도 하는 자체 작업 공간 내의 변수에 대해 작동합니다. , 기본 작업 공간이라고 하는 MATLAB 명령 프롬프트에서 액세스하는 작업 공간과 별도로 .

함수는 둘 이상의 입력 인수를 허용할 수 있으며 둘 이상의 출력 인수를 반환할 수 있습니다.

함수 문의 구문은 -

입니다.
function [out1,out2, ..., outN] = myfun(in1,in2,in3, ..., inN)

mymax라는 다음 함수 mymax.m 파일에 작성해야 합니다. . 5개의 숫자를 인수로 사용하고 숫자의 최대값을 반환합니다.

mymax.m이라는 함수 파일을 만들고 그 안에 다음 코드를 입력하십시오 -

function max = mymax(n1, n2, n3, n4, n5)

%This function calculates the maximum of the
% five numbers given as input
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 함수에는 5개의 입력 인수와 1개의 출력 인수가 있습니다.

함수 문 바로 뒤에 오는 주석 행은 도움말 텍스트를 제공합니다. 이 줄은 −

를 입력할 때 인쇄됩니다.
help mymax

MATLAB은 위의 명령문을 실행하고 다음 결과를 반환합니다 -

This function calculates the maximum of the
   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 = power(7, 3)
result2 = power(49, 0.5)
result3 = power(10, -10)
result4 = power (4.5, 1.5)

파일을 실행하면 -

가 표시됩니다.
result1 =  343
result2 =  7
result3 =  1.0000e-10
result4 =  9.5459

기본 및 하위 기능

익명 함수 이외의 모든 함수는 파일 내에서 정의되어야 합니다. 각 기능 파일에는 가장 먼저 나타나는 필수 기본 기능과 기본 기능 다음에 와서 사용되는 선택적 하위 기능이 포함되어 있습니다.

기본 함수는 명령줄이나 다른 함수에서 정의하는 파일 외부에서 호출할 수 있지만 하위 함수는 함수 파일 외부의 명령줄이나 다른 함수에서 호출할 수 없습니다.

하위 기능은 기본 기능과 이를 정의하는 기능 파일 내의 다른 하위 기능에서만 볼 수 있습니다.

예시

이차 방정식의 근을 계산하는 이차 함수를 작성해 보겠습니다. 이 함수는 2차 계수, 선형 계수 및 상수 항의 세 가지 입력을 받습니다. 루트를 반환합니다.

함수 파일 quadratic.m에는 기본 함수 quadratic이 포함됩니다. 및 하위 기능 디스크 , 판별식을 계산합니다.

함수 파일 quadratic.m 생성 다음 코드를 입력하십시오 -

function [x1,x2] = quadratic(a,b,c)

%this function returns the roots of 
% a quadratic equation.
% It takes 3 input arguments
% which are the co-efficients of x2, x and the 
%constant term
% It returns the roots
d = disc(a,b,c); 
x1 = (-b + d) / (2*a);
x2 = (-b - d) / (2*a);
end   % end of quadratic

function dis = disc(a,b,c) 
%function calculates the discriminant
dis = sqrt(b^2 - 4*a*c);
end   % end of sub-function

명령 프롬프트에서 위의 함수를 -

로 호출할 수 있습니다.
quadratic(2,4,-4)

MATLAB은 위의 명령문을 실행하고 다음 결과를 반환합니다 -

ans = 0.7321

중첩 함수

다른 함수의 본문 내에서 함수를 정의할 수 있습니다. 이를 중첩 함수라고 합니다. 중첩 함수에는 다른 함수의 구성 요소 중 일부 또는 전체가 포함됩니다.

중첩 함수는 다른 함수의 범위 내에서 정의되며 포함하는 함수의 작업 공간에 대한 액세스를 공유합니다.

중첩 함수는 다음 구문을 따릅니다. -

function x = A(p1, p2)
...
B(p2)
   function y = B(p3)
   ...
   end
...
end

예시

2차 함수를 다시 작성해 보겠습니다. , 그러나 이전 예제에서는 디스크 기능이 중첩된 기능이 됩니다.

함수 파일 quadratic2.m 생성 다음 코드를 입력하십시오 -

function [x1,x2] = quadratic2(a,b,c)
function disc  % nested function
d = sqrt(b^2 - 4*a*c);
end   % end of function disc

disc;
x1 = (-b + d) / (2*a);
x2 = (-b - d) / (2*a);
end   % end of function quadratic2

명령 프롬프트에서 위의 함수를 -

로 호출할 수 있습니다.
quadratic2(2,4,-4)

MATLAB은 위의 명령문을 실행하고 다음 결과를 반환합니다 -

ans =  0.73205

개인 기능

개인 기능은 다른 기능의 제한된 그룹에서만 볼 수 있는 기본 기능입니다. 함수의 구현을 노출하지 않으려면 비공개 함수로 생성할 수 있습니다.

비공개 기능은 하위 폴더에 있습니다. 특별한 이름으로 비공개 .

상위 폴더의 기능에만 표시됩니다.

예시

2차를 다시 작성해 보겠습니다. 기능. 그러나 이번에는 디스크 판별식을 계산하는 함수는 비공개 함수가 됩니다.

작업 디렉터리에 private이라는 하위 폴더를 만듭니다. 다음 기능 파일 저장 disc.m 그 안에 -

function dis = disc(a,b,c) 
%function calculates the discriminant
dis = sqrt(b^2 - 4*a*c);
end      % end of sub-function

작업 디렉토리에 함수 quadratic3.m을 만들고 그 안에 다음 코드를 입력하십시오 -

function [x1,x2] = quadratic3(a,b,c)

%this function returns the roots of 
% a quadratic equation.
% It takes 3 input arguments
% which are the co-efficient of x2, x and the 
%constant term
% It returns the roots
d = disc(a,b,c); 

x1 = (-b + d) / (2*a);
x2 = (-b - d) / (2*a);
end      % end of quadratic3

명령 프롬프트에서 위의 함수를 -

로 호출할 수 있습니다.
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

MATLAB

  1. Stratasys Insight의 10가지 인기 기능
  2. 프로그램 예제가 있는 C++ 함수
  3. 예제가 있는 Python Lambda 함수
  4. Verilog 기능
  5. C - 기능
  6. MATLAB - 개요
  7. MATLAB - 변수
  8. MATLAB - 명령
  9. MATLAB - 데이터 유형
  10. MATLAB - 행렬