안녕하세요! MATLAB을 배우고 싶은 분들을 위한 완벽 가이드를 준비했어요 😊
MATLAB은 강력한 프로그래밍 도구인데, 그 핵심은 바로 **함수(function)**예요!
코드를 재사용할 수 있게 하고, 복잡한 문제를 작고 관리하기 쉽게 만들어주죠.
이 글에서는 MATLAB 함수 사용법을 처음부터 끝까지 배워볼 거예요!
기본적인 함수 정의부터 고급 기술까지, 다양한 예제와 함께 하나씩 익혀봐요! 🚀
📌 MATLAB 함수란?
함수란 입력값을 받아 특정 연산을 수행한 후 결과를 반환하는 코드 블록이에요.
쉽게 말해, 입력 데이터를 가공해서 원하는 결과를 뽑아내는 계산 상자라고 생각하면 돼요!
MATLAB에서 함수를 만들 때 기본적인 구조는 다음과 같아요.
function [출력1, 출력2, ...] = 함수이름(입력1, 입력2, ...)
% 함수 설명 (도움말 텍스트)
% 실행할 코드 작성
end
📍 중요한 특징:
- 함수의 이름과 파일 이름(.m 파일)이 같아야 해요!
- 여러 개의 입력과 출력을 가질 수 있어요.
- 코드가 길어질수록 함수를 활용하면 가독성이 좋아지고 유지보수가 쉬워져요!
✅ MATLAB 함수의 3가지 유형
1️⃣ 글로벌 함수 (Global Function)
가장 일반적인 형태로, 별도의 .m 파일에서 정의하는 함수예요.
파일 이름은 반드시 함수 이름과 동일해야 해요.
🔹 예제: 두 숫자 중 큰 값을 반환하는 함수
function result = findMax(a, b)
if a > b
result = a;
else
result = b;
end
end
이 함수를 사용하려면 findMax.m 파일로 저장한 후, MATLAB에서 이렇게 실행하면 돼요!
x = findMax(10, 20); % 결과: 20
2️⃣ 로컬 함수 (Local Function)
한 .m 파일 안에서 여러 개의 함수를 정의할 수 있어요.
이 경우, 주 함수(main function) 뒤에 로컬 함수들을 추가하면 돼요!
🔹 예제: 삼각형 넓이를 계산하는 주 함수 + 로컬 함수
function area = mainFunction(base, height)
area = triangleArea(base, height);
end
% 로컬 함수
function area = triangleArea(b, h)
area = 0.5 * b * h;
end
3️⃣ 익명 함수 (Anonymous Function)
파일을 만들지 않고, 한 줄짜리 간단한 함수를 만들 때 사용해요.
특히 함수 핸들을 전달할 때 유용하답니다!
🔹 예제: 제곱을 계산하는 익명 함수
sqr = @(x) x.^2;
result = sqr(5); % 결과: 25
익명 함수는 다음과 같이 활용할 수도 있어요.
f = @(x, y) x.^2 + y.^2;
z = f(3, 4); % 결과: 25
📊 MATLAB 함수에서 수학 연산 활용하기
🔹 기본 연산
MATLAB에서는 다음과 같은 기본 연산을 함수 내에서 자유롭게 사용할 수 있어요.
연산 연산자
덧셈 | + |
뺄셈 | - |
곱셈 | * |
나눗셈 | / |
거듭제곱 | ^ |
🔹 예제: 기본 연산을 수행하는 함수
function [sumResult, powerResult] = basicMath(a, b)
sumResult = a + b;
powerResult = a^b;
end
🔹 행렬 연산
MATLAB은 행렬 기반 프로그래밍 언어이므로, 행렬 연산이 매우 중요해요!
A = [1 2; 3 4]; % 2x2 행렬
B = [5 6; 7 8];
C = A * B; % 행렬 곱셈
D = A .* B; % 요소별 곱셈 (각 요소끼리 곱하기)
🔹 복소수 연산
MATLAB에서는 복소수 연산도 쉽게 할 수 있어요!
z = 3 + 4j; % 복소수 정의
mag = abs(z); % 크기 계산
phase = angle(z); % 위상 계산
📈 MATLAB 함수 시각화 (그래프 그리기)
함수를 그래프로 그리면 데이터의 변화를 쉽게 이해할 수 있어요!
🔹 기본 그래프 그리기
MATLAB에서 가장 많이 쓰는 그래프 함수는 plot()이에요.
x = 0:0.1:10; % 0부터 10까지 0.1 간격으로 값 생성
y = sin(x);
plot(x, y, 'r--'); % 빨간색 점선 그래프
🔹 3D 그래프
3차원 그래프도 쉽게 그릴 수 있어요!
[X, Y] = meshgrid(-5:0.5:5, -5:0.5:5);
Z = X.^2 + Y.^2;
surf(X, Y, Z); % 3D 곡면 그래프
🏆 MATLAB 고급 함수 활용
🔹 비선형 방정식 풀이 (fzero)
어떤 함수가 f(x) = 0을 만족하는 값을 찾고 싶다면?
MATLAB의 fzero()를 사용하면 돼요!
f = @(x) x^2 - 4;
root = fzero(f, 1); % x^2 - 4 = 0의 해 (x=2 또는 -2 중 하나)
🔹 텍스트 데이터 분석
문장을 단어로 나누고 싶다면 tokenizedDocument()를 사용하면 돼요!
txt = "MATLAB은 데이터 분석에 유용합니다.";
doc = tokenizedDocument(txt);
🎯 MATLAB 함수 작성 꿀팁!
🔹 가독성을 높이자!
- 함수명은 의미 있게 정하기 (calcArea 대신 triangleArea)
- help 명령어를 위한 설명 추가하기
function y = myFunction(x)
% 이 함수는 x의 제곱을 반환합니다.
y = x^2;
end
🔹 연산 최적화!
- for 루프 대신 벡터 연산 활용하기
- 미리 행렬 크기를 지정해서 속도를 높이기
% 비효율적인 코드
for i = 1:length(A)
B(i) = A(i) * 2;
end
% 효율적인 코드
B = A * 2;
✨ 결론
이제 MATLAB 함수의 기본 개념부터 고급 활용법까지 모두 배웠어요! 🎉
📌 핵심 요약
- 함수는 입력을 받아 연산 후 결과를 반환하는 코드 블록
- 글로벌, 로컬, 익명 함수 활용 가능
- 함수에서 기본 연산, 행렬 연산, 그래프 그리기 가능
- 고급 활용법(비선형 방정식, 텍스트 분석)까지 가능!
이제 직접 MATLAB에서 다양한 함수를 만들어보고 실행해보세요!
궁금한 점이 있다면 언제든지 댓글로 남겨주세요! 😊
'MATLAB 정보 공유' 카테고리의 다른 글
MATLAB을 활용한 로봇공학: 역기구학 및 역운동학 시뮬레이션 예제 (0) | 2025.03.11 |
---|---|
공학 분야에서 꼭 알아야 할 MATLAB 활용 예제 📊 (0) | 2025.03.11 |
매트랩 조건문과 반복문 완벽 정리! 초보도 쉽게 이해하는 가이드 (0) | 2025.03.11 |
MATLAB 완벽 가이드: 초보자를 위한 단계별 튜토리얼 (0) | 2025.03.10 |
MATLAB에서 plot을 활용한 그래프 그리기 (0) | 2025.03.06 |