

% 파일명: my_first_script.m
% Editor에서 작성 → Ctrl+S 저장 → F5 또는 Run 버튼으로 실행
disp('Hello MATLAB!') % 문자열 출력
x = 10; % 변수 할당
y = 20;
z = x + y % 세미콜론 없으면 결과 출력됨
//실행 결과는 아래와 같다
Hello MATLAB!
z =
30
이전 실행의 찌꺼기(변수, 그래프)로 결과가 꼬이는 것을 방지하기위해 Command Window, Workspace, figure 등 각종 창을 초기화하는 코드
clc % Command Window 화면 깨끗하게 지움
clear % Workspace의 모든 변수 삭제
close all % 열려있는 모든 figure(그래프) 창 닫기
스크립트 파일이나 command window에서
;를 붙이면 연산 결과를 출력을 막을 수 있다
보통 중간 계산은 ; 붙여서 결과 확인 생략하고, 확인하고 싶은 최종 결과만 ; 를 빼서 결과를 확인한다.
주석에는
한 줄 주석과블럭 주석이 존재한다.
% 이것은 한 줄 주석입니다
%{
이것은
블록 주석입니다
여러 줄을 한 번에 주석 처리할 수 있습니다
%}
x = 10; % 코드 뒤에도 주석 가능
단축키: 마우스 드래그로 여러 줄 선택 → Ctrl + R (주석) / Ctrl + T (주석 해제)
help sin % sin 함수 간단한 도움말
doc sin % sin 함수 상세 문서 (브라우저 열림)
who % 현재 변수 이름 목록
whos % 현재 변수 이름 + 크기 + 타입 (상세)
pwd % 현재 작업 디렉토리 확인
cd 'C:\path' % 디렉토리 이동
MATLAB은 C/C++과 달리 자료형 명시 없이 변수에 값을 바로 할당한다.
x = 10; % 자동으로 double (64비트 실수)
name = 'Jaeyun'; % 문자 배열 (char)
flag = true; % 논리형 (logical)
% C++: int x = 10; ← 타입 명시 필요
% MATLAB: x = 10; ← 알아서 double로 됨
% ── 숫자 (기본은 전부 double) ──
a = 42; % double (64비트 부동소수점) ← 기본!
b = 3.14; % double
c = single(3.14); % single (32비트 부동소수점)
d = int32(42); % 32비트 정수
e = uint8(255); % 8비트 부호 없는 정수 (0~255)
% ── 논리형 ──
f = true; % logical (1)
g = false; % logical (0)
% ── 문자/문자열 ──
h = 'hello'; % 문자 배열 (char) — 작은따옴표
i = "hello"; % 문자열 (string) — 큰따옴표
참고로 MATLAB에서 숫자를 쓰면 그게 정수든, 소수든 기본이 무조건 double 이다.
pi % 3.141592653589793... 원주율
inf % Infinity 무한대
-inf % -Infinity 음의 무한대
NaN % Not a Number 0/0 같은 정의 불가
eps % 2.2204e-16 double 최소 정밀도
i % 허수 단위 (√-1)
j % 허수 단위 (i와 동일)
% 사용 예시
1/0 % inf
0/0 % NaN
log(0) % -inf
% 허수
z = 3 + 4i; % 복소수 3 + 4i
real(z) % 3
imag(z) % 4
abs(z) % 5 (크기)
angle(z) % 0.9273 (위상, 라디안)
% 숫자 → 다른 숫자
x = 3.7;
int32(x) % 4 (반올림)
uint8(x) % 4
single(x) % single 3.7000
% 숫자 ↔ 문자열
num2str(42) % '42' (숫자 → 문자)
str2double('3.14') % 3.14 (문자 → 숫자)
% 논리 변환
logical(0) % false
logical(5) % true (0이 아니면 전부 true)
double(true) % 1
a = 10; b = 3;
a + b % 13 덧셈
a - b % 7 뺄셈
a * b % 30 곱셈
a / b % 3.3333 나눗셈
a \ b % 0.3000 역나눗셈 (b/a와 동일)
a ^ b % 1000 거듭제곱 (10³)
mod(a, b) % 1 나머지 (C의 % 연산)
rem(a, b) % 1 나머지 (mod와 거의 동일)
MATLAB 연산의 핵심으로, 행렬/벡터에서 각 원소끼리 연산시키는 연산자
A = [1 2 3];
B = [4 5 6];
% ── 행렬 연산 vs 요소별 연산 ──
A * B % ❌ 에러! (1x3) * (1x3) 이라 '앞에꺼의 열'과 '뒤에꺼의 행'이 다름 -> 행렬곱 불가
A .* B % ✅ [4 10 18] 각 원소끼리 곱이라 가능
A / B % 행렬 나눗셈 (복잡한 의미)
A ./ B % [0.25 0.4 0.5] 각 원소끼리 나눗셈
A ^ 2 % ❌ 에러! (A * A는 '앞에꺼의 열'과 '뒤에꺼의 행'이 다름 -> 정사각 행렬만 행렬 제곱 가능)
A .^ 2 % ✅ [1 4 9] 각 원소를 제곱
정리:
* 행렬곱 .* 요소별 곱
/ 행렬 나눗셈 ./ 요소별 나눗셈
^ 행렬 거듭제곱 .^ 요소별 거듭제곱
+, - 는 원래 요소별이라 점(.) 필요 없음!
외우는 법: 점(.)을 찍으면 원소 하나하나씩 연산한다!
a = 5; b = 3;
a == b % false (0) 같다
a ~= b % true (1) 다르다 ← C++의 != 가 아니라 ~= !!
a > b % true (1)
a < b % false (0)
a >= b % true (1)
a <= b % false (0)
⚠️ C/C++과 다른 점: 같지 않다가 !=이 아니라 ~= 이다.
% ── 요소별 (벡터/행렬용) ──
A & B % AND (요소별)
A | B % OR (요소별)
~A % NOT (요소별)
xor(A, B) % XOR (요소별)
% ── 단축 평가 (스칼라용, if문에서 사용) ──
a && b % AND (왼쪽이 false면 오른쪽 안 봄)
a || b % OR (왼쪽이 true면 오른쪽 안 봄)
% 예시
x = [1 0 1 0];
y = [1 1 0 0];
x & y % [1 0 0 0]
x | y % [1 1 1 0]
~x % [0 1 0 1]
% if문에서는 && || 사용
if (a > 0) && (b > 0)
disp('둘 다 양수')
end
높음 ────────────────────────── 낮음
() → .^ → ~ → * / .* ./ → + -
→ < > <= >= == ~=
→ & → | → && → ||