๐ MATLAB ์ด๋?
MATLAB = Matrix(ํ๋ ฌ) + Laboratory(์คํ์)
MATLAB์ ๊ณตํ์ ๊ธฐ์ด์ธ ํ๋ ฌ์ ๋ง๋ค๊ณ ํ์ํ ๊ณ์ฐ ๋ฐ ์กฐ์์ ์ํํ๋ ํ๋ก๊ทธ๋๋ฐ, ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ด๋ค.
(โป MATLAB ์ธ์ด๊ฐ MATLAB ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์ ํ๋ก๊ทธ๋จ, ์ธ์ด ๋๋ค ๋ง๋ ํํ์ด๋ค.)
- ํต์ฌ ๊ธฐ๋ฅ
์์น ๊ณ์ฐ, ๋ฐ์ดํฐ ์์ง, ๋ฐ์ดํฐ ๋ถ์, ๋ฐ์ดํฐ ์๊ฐํ, ๊ฒฐ๊ณผ ๋ฌธ์ํ ๋ฐ ๊ณต์ ๊ธฐ๋ฅ์ด ํต์ฌ ๊ธฐ๋ฅ์ด๋ค. - MATLAB ๋ช
๋ น์ด, ํจ์ ์ค์ฌ์ ์ธ์ด
MATLAB์ ๋ช ๋ น์ด์ ํจ์ ์ค์ฌ ์ธ์ด๋ก, ๊ฐ์ฒด ๋ฐ ์ ์ฐจ ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ์ง์ํ๋ค. - ํด๋ ๊ธฐ๋ฅ
๊ธฐ๋ณธ ์์ ๊ณต๊ฐ์ C:\Users\User\Documents\MATLAB ์ด๋ฉฐ window์ ๊ธฐ๋ณธ ๋ช ๋ น์ด๋ ๋น์ทํ๋ค,
๐ MATLAB ์ฃผ์ ๋ด์ฉ ์ ๋ฆฌ
๊ธฐ๋ณธ ๋ด์ฉ
- ๋ณ์
์์ด ๋/์๋ฌธ์, ์ซ์, ์ธ๋๋ฐ๋ฅผ ์กฐํฉํด ์ต๋ 63๊ฐ ๊ธธ์ด๋ก ๋ณ์ ์์ฑ ๊ฐ๋ฅ(โป ์์์ ์๋ฌธ์๋ก ์์ ํด์ผํจ)
- global ๋ณ์
๋ณ์ ์์ global์ ๋ถ์ฌ ์ ์ธํ ๊ฒฝ์ฐ, ๋ค๋ฅธ ํจ์์์ ๋์ผํ๊ฒ ๋ณ์ ์ ์ธ ์ ์ ์ญ ๋ณ์๋ก ํด๋น ๋ณ์ ์ฌ์ฉ ๊ฐ๋ฅ - ์์ฝ์ด
pi, e, i, j, eps, true, false, inf, nan ๋ฑ์ ๋ค์ํ ์์ฝ์ด๊ฐ ์กด์ฌ
- global ๋ณ์
- ์ฐ์ ์ฐ์ฐ
+, -. *, ^, \, / ์ฐ์ ์ฐ์ฐ์ ์ํํ๋ฉฐ ์๋์ ๊ฐ์ ๊ธฐ์กด ํ๋ ฌ๊ณผ๋ ๋ค๋ฅธ ๊ณ์ฐ๋ฒ์ด ์กด์ฌํ๋ค.
โป ์ฐ์ฐ ์ฐ์ ์์ : () -> exp -> *, /, \ -> +, -
- x + 3 -> ๋ชจ๋ ๊ฐ์ 3์ ๋ํจ
- x(1:2, 3:5) = 3 -> ํด๋น ๊ตฌ๊ฐ์ ๊ฐ์ ๋ชจ๋ 3์ผ๋ก ๋ฐ๊ฟ
- x .^ 2 -> ๋ชจ๋ ๊ฐ์ ์ ๊ณฑ์ ํด์ค
- ๊ด๊ณ ์ฐ์ฐ & ๋
ผ๋ฆฌ ์ฐ์ฐ
๋ค๋ฅธ ์ธ์ด์ ์ ์ฌํ๊ฒ ์ฌ์ฉ๋๋ฉฐ ๊ฒฐ๊ณผ๋ 0 -> false, 1 -> true ๋ก ๋ฐํํ๋ค. - ์ถ๋ ฅ ์์
์์์ ํํ ์ ๊ฐ๋ ์ฑ ๋ฐ ์ ๋ขฐ์ฑ์ ์ํด ๋ถ๋ ์์์ ( 5 x e^-3 )์ ์ฃผ๋ก ์ฌ์ฉํ๋ฉฐ double ํ์ด ๊ธฐ๋ณธ ์ค์ ์ด๋ค.
format ํจ์๋ฅผ ํตํด ์ถ๋ ฅ ํ์ ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํ๋ค.
- format long e : ์์์ ์ ์ง์ ํํ์ ํ์ฉํ์ฌ ๋ํ๋ (e.g. 1.576130816775483e-01)
- format long g : ์์์ ์ดํ ์๋ฆฌ๋ฅผ ๋ ๋ง์ด ํ์(๋ณดํต double ์ด๋ฏ๋ก 15์๋ฆฌ๊น์ง ํ์๋จ)
- format compact : ๊ฒฐ๊ณผ์ ์ค๊ฐ๊ฒฉ ๋์ด์ฐ๊ธฐ๋ฅผ ์ ๊ฑฐ ๋ ์์ถ๋ ํํ๋ก ํ์
- ๋ณต์์
- real(x) -> ๋ณต์์์ ์ค์๋ถ
- imag(x) -> ๋ณต์์์ ํ์๋ถ
- abs(x) -> ๋ณต์์์ ์ ๋๊ฐ ๋ฐํ (โป e.g. abs(−7+2i)=(−7)2+(2)2โ=49+4โ=53โ≈7.2801)
- angle(x) -> ๋ณต์์์ ๊ฐ๋๊ฐ ๋ฐํ (โป e.g. angle(3+4i)=arctan(3/4โ)≈0.93radians)
- x' -> ๋ณต์์๋ฅผ ์ ์น์ํฌ ๊ฒฝ์ฐ ํ์๋ถ์ ๋ถํธ๊ฐ ๋ฐ๋๋ก ๋๋๋ฐ ์ด๋ฅผ ๋ง๊ธฐ ์ํด์๋ x.' ์ ์ ์ถ๊ฐํ๋ฉด ๋๋ค.
- ๋ฌธ์์ด
- 'hi hello' -> ' ๋ฅผ ๋ถ์ฌ ์์ฑํ ์ ์์ผ๋ฉฐ 1x8์ ์ฌ์ด์ฆ๋ฅผ ๊ฐ๋ ํ๋ ฌ๊ณผ ๋์ผํ๊ฒ ์ทจ๊ธํ๋ค.
- '' -> ๋ฌธ์ ์์ ' ๋ฅผ ์ฐ๋ ค๋ฉด ""๋ก ์จ์ผํ๋ค.
- num2str(num); -> ์ซ์๋ฅผ ๋ฌธ์์ด๋ก ๋ณํํ๋ ํจ์๊ฐ ์์ผ๋ฉฐ ๋ฌธ์์ด ๊ด๋ จ ์ฌ๋ฌ ํจ์ ์กด์ฌํ๋ค.
- strArray = ["apple", "banana", "cherry"]; ์ ๊ฐ์ด ๋ฌธ์์ด ํ๋ ฌ ์์ฑ ๊ฐ๋ฅ
- Inf (๋ฌดํ๋)
1/0 ์ฒ๋ผ 0์ผ๋ก ๋๋ ์ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์์๋ ์๋ฌ๊ฐ ๋ฐ์ํ์ง๋ง MATLAB์ ์ด๋ฅผ ํ์ฉํ๋ฉฐ, ๋ฌดํ๋ ๊ฐ์ ๊ฐ์ง๊ฒ ๋จ - NaN(์ซ์ x)
0์ 0์ผ๋ก ๋๋ ๊ฒฝ์ฐ MATLAB์์๋ NaN์ ๋ฐํํ๋ฉฐ, ์ซ์๊ฐ ์๋์ ์๋ฏธํจ
ํ๋ ฌ ๊ด๋ จ ๋ด์ฉ
- ์์ฑ ๋ฐฉ๋ฒ
์ผํ, ๋์ด์ฐ๊ธฐ, ์ธ๋ฏธ์ฝ๋ก ๋ฑ์ ์ฌ์ฉํด ์๋ ์ ๊ฐ์ด ํ๋ ฌ ์์ฑ ๊ฐ๋ฅ
- x = [] -> ๋น ํ๋ ฌ ์์ฑ
- x = [1 2 3] -> x = 1 2 3
- x = [1,2,3] -> x = 1 2 3
- y = [1 2; 3 4] -> y = 1 2
3 4 - z = 1:6 or [1:6] -> z = 1 2 3 4 5 6
- q = 0 : 2 : 6 -> q = 0 2 4 6
- ํจ์๋ฅผ ์ฌ์ฉํ ์์ฑ ๋ฐฉ๋ฒ
- lindspace(1, 4, 4) -> ans = 1 2 3 4
- rand(a,b) -> 0๊ณผ 1 ์ฌ์ด์ ๋๋ค๊ฐ์ ๊ฐ์ง๋ axb ํฌ๊ธฐ์ ํ๋ ฌ ์์ฑ
- one(a,b) -> 1์ ๊ฐ์ ๊ฐ์ง๋ axb ํฌ๊ธฐ์ ํ๋ ฌ ์์ฑ
- zeros(a,b) -> 0์ ๊ฐ์ ๊ฐ์ง๋ axb ํฌ๊ธฐ์ ํ๋ ฌ ์์ฑ
- eye(a) -> axa ํฌ๊ธฐ์ ๋จ์ ํ๋ ฌ ์์ฑ
- magic(a) -> axa ํฌ๊ธฐ์ ๋ง๋ฐฉ์ง ํ๋ ฌ ์์
- ํ๋ ฌ ์์ ์กฐํ ๋ฐฉ๋ฒ
- x(1, 1) -> 1ํน 1์ด ๊ฐ ์กฐํ
- x(2) -> 1ํ 2์ด์ ๊ฐ ์กฐํ (โป ๋ฉ๋ชจ๋ฆฌ์๋ 1D๋ก ์ ์ฅ์ด ๋์ด ์์ด 1ํ 2์ด์ ๊ฐ ์ถ๋ ฅ๋จ)
- x(3, 2:end) -> 3ํ์ 2์ด ~ ํด๋น ์ด์ ๋ ๊น์ง์ ๊ฐ ์กฐํ
- x(:, 2) -> 2์ด์ ๋ชจ๋ ๊ฐ ์กฐํ
- x(2:3, :) -> 2ํ & 3ํ์ ๋ชจ๋ ์ด์ ๊ฐ ์กฐํ
- ํ๋ ฌ ์ฐจ์ ์ฆ๊ฐ ๋ฐฉ๋ฒ
- x(: , : , 2) = rand(a,b)
- ์
๋ฐฐ์ด
{}๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ๋ฐ์ดํฐ ํ์ ์ ๋ด์ ์ ์๋ ๋ฐฐ์ด์ ๋ง๋๋ ๊ฒ์ Cell Array ๋ผ๊ณ ๋ถ๋ฅธ๋ค.
ํ๋ ฌ ์ ์ฒด ๋๋ ์์ ๋ณ๋ก๋ ์ ์ฉ์ด ๊ฐ๋ฅํ๋ค. - ์๊ฐ์ ํํ ๊ธฐ๋ฅ
cellpot ํจ์๋ฅผ ํตํด cell array์ ๊ตฌ์กฐ๋ฅผ ์๊ฐ์ ์ผ๋ก ํ์ํ ์ ์๋ค. - ๊ตฌ์กฐ์ฒด ๋ฐฐ์ด
์ฌ๋ฌ ๋ฐ์ดํฐ ํ์ ์ ๊ฐ์ง ํ๋๋ก ๊ตฌ์ฑ๋ ๊ตฌ์กฐ์ฒด(Structure)๋ฅผ ๋ฐฐ์ด ํํ๋ก ์ ์ฅํ๋ ๋ฐฉ๋ฒ
>> person(1).name = 'Tobby'; >> person(1).age = '29'; >> person(1).city = 'Seoul';
๋๋ฒ๊น ๊ด๋ จ ๋ด์ฉ
MATLAB ๋๋ฒ๊น
์์๋ Red Dot(์ผ๋ฐ์ ์ธ Breakpoint)๊ณผ Yellow Dot(Conditional Breakpoint)์ ์ฌ์ฉํ์ฌ ์ฝ๋๋ฅผ ์ค๋จํ๊ณ ๋๋ฒ๊น
ํ ์ ์์ต๋๋ค.
- Breakpoint (Red Dot)
์ฝ๋ ์คํ ์ค ์ธ์ ๋ ํน์ ๋ผ์ธ์์ ์ค๋จํ ์ ์๋ ์ผ๋ฐ์ ์ธ ์ค๋จ์ ์ ๋๋ค.
์ค๋จํ๊ณ ์ถ์ ๋ผ์ธ ๋ฒํธ์ ๋ง์ฐ์ค๋ก ํด๋ฆญํ์ฌ ์ค์ ํ๊ณ ํด๋น ์ฝ๋ ์คํ ์ ๋๋ฒ๊ฑฐ๊ฐ ์คํ,
๋ช ๋ น ์ฐฝ๊ณผ ๋์์ ํ์ค ์ฉ ์ฝ๋๊ฐ ์ค์ ํ Break Point ๊น์ง ์คํ๋๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค. - Conditional Breakpoint(Yellow Dot)
ํน์ ์กฐ๊ฑด์ด ์ถฉ์กฑ๋ ๋๋ง ์ค๋จ๋๋ ์ค๋จ์ ์ ๋ํ๋ ๋๋ค. ์ฆ, ํน์ ์กฐ๊ฑด์ด ์ฐธ(True)์ด์ด์ผ ์ค๋จ์ด ๋ฐ์ํฉ๋๋ค.
์ค๋จํ๊ณ ์ถ์ ๋ผ์ธ ๋ฒํธ์์ ์ค๋ฅธ์ชฝ ํด๋ฆญํ๊ณ ํ "Set Conditional Breakpoint"๋ฅผ ์ ํํ์ฌ ์ค์ ํ๊ณ ์ฝ๋ ์คํ ์ค ํด๋น ์กฐ๊ฑด์ด ์ถฉ์กฑ๋๋ฉด ์คํ์ด ์ค๋จ๋๋ฉฐ ๋๋ฒ๊น ์ด ์์๋ฉ๋๋ค.
ํ์ผ ๊ด๋ จ ๋ด์ฉ
- ๊ธฐ๋ณธ์ ์ธ ํ์ผ ์ด๊ธฐ ๋ซ๊ธฐ ์ฝ๊ธฐ ๋ฐฉ๋ฒ
% ํ์ผ ์ด๊ธฐ fid = fopen('example.txt', 'r'); % r, w, wt, a, r+, w+, a+ ์กด์ฌ, fid : ํ์ผ ์๋ณ์ % ํ์ผ์์ ๋ฌธ์์ด ๋ฐ์ดํฐ๋ฅผ ์ฝ์ data = fscanf(fid, '%s'); % ํ์ผ ๋ซ๊ธฐ fclose(fid);
- ํ์ผ์ ์
๋ ฅ๋ฐ์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์์
% ํ์ผ ์ด๋ฆ์ ์ฌ์ฉ์๋ก๋ถํฐ ์ ๋ ฅ๋ฐ์ filename = input('Type ascii file name (ex. output1.txt, output2.txt): ', 's'); % ํ์ผ ์ด๊ธฐ ๋ฐ ์ค๋ฅ ์ฒ๋ฆฌ fid = fopen(filename, 'r'); if fid == -1 error('Could not open the file.'); end % ํ์ผ์์ ์ซ์ ๋ฐ์ดํฐ ์ฝ๊ธฐ x = fscanf(fid, '%f'); % ๋ฐ์ดํฐ ์ฒ๋ฆฌ -> ์ฌ๋ฐฐ์ดํ์ฌ ํ๋ ฌ X์ ์ ์ฅ nd = 5; md = length(x) / nd; X = reshape(x, [nd, md])'; % ํ์ผ ๋ซ๊ธฐ fclose(fid); % ๊ฒฐ๊ณผ ํ์ธ disp('Data Matrix (X):'); disp(X);
- xls ๋ฐ์ดํฐ ์ฒ๋ฆฌ
xls๋ MATLAB์์ Excel ํ์ผ๊ณผ ์ํธ ์์ฉํ๋ ํจ์๋ค์ ์งํฉ์ ์๋ฏธํ๋ค.% ํ์ผ ์ด๊ธฐ fid = fopen('example.txt', 'r'); % r, w, wt, a, r+, w+, a+ ์กด์ฌ, fid : ํ์ผ ์๋ณ์ % ํ์ผ์์ ๋ฌธ์์ด ๋ฐ์ดํฐ๋ฅผ ์ฝ์ data = fscanf(fid, '%s'); % ํ์ผ ๋ซ๊ธฐ fclose(fid);
- fprintf, fscanf, fgetl
- fprintf
ํ์์ ์ง์ ํ์ฌ ํ์ผ์ ๋ฐ์ดํฐ๋ฅผ ์ฐ๋ ๋ฐ ์ฌ์ฉ๋จ
fid = fopen('example.txt', 'w'); % ์ฐ๊ธฐ ๋ชจ๋๋ก ํ์ผ ์ด๊ธฐ fprintf(fid, '์๋ ํ์ธ์, %s!\n', 'MATLAB'); % ํ์ผ์ ๋ฐ์ดํฐ ์ฐ๊ธฐ fclose(fid); % ํ์ผ ๋ซ๊ธฐ
- fscanf
fid = fopen('example.txt', 'r'); % ์ฝ๊ธฐ ๋ชจ๋๋ก ํ์ผ ์ด๊ธฐ data = fscanf(fid, '%s'); % ํ์ผ์์ ๋ฌธ์์ด ์ฝ๊ธฐ fclose(fid); % ํ์ผ ๋ซ๊ธฐ
- fgetl
ํ์ผ์์ ํ ์ค์ฉ ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ ๋ฐ ์ฌ์ฉ
fid = fopen('example.txt', 'r'); % ์ฝ๊ธฐ ๋ชจ๋๋ก ํ์ผ ์ด๊ธฐ line = fgetl(fid); % ํ์ผ์์ ํ ์ค ์ฝ๊ธฐ fclose(fid); % ํ์ผ ๋ซ๊ธฐ
- fprintf
ํจ์ ๊ด๋ จ ๋ด์ฉ
- ํจ์ ์์ฑ
์๋์ ๊ฐ์ด ์ฌ์ฉ์๊ฐ ํ์ํ ํจ์๋ฅผ ๋ง๋ค์ด ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ์๋ ๋งํฌ์์ ๋ค๋ฅธ ์ฌ๋์ด ๋ง๋ ํจ์๋ฅผ ๋ฐ์ ์ ์๋ค.
๋ํ help๋ฅผ ์ณค์ ๋ ๋์ค๋ ์ค๋ช ์ ์๋์ ๊ฐ์ด ์ต๋ํ ์์ธํ ์ ๋๊ฒ์ด ์ข๋ค.
https://kr.mathworks.com/matlabcentral/fileexchange/?s_tid=gn_mlc_fx_files
% square ํจ์ % y = square(x)๋ ์ ๋ ฅ๊ฐ x๋ฅผ ์ ๊ณฑํ์ฌ ๋ฐํํฉ๋๋ค. % % ์ ๋ ฅ: % x - ์ ๊ณฑํ ๊ฐ์ ๋ํ๋ด๋ ์ค์๋ ๋ฒกํฐ % ์ถ๋ ฅ: % y - x์ ์ ๊ณฑ ๊ฐ ๋๋ ๊ฐ ์์์ ์ ๊ณฑ ๊ฐ์ด ํฌํจ๋ ๋ฒกํฐ % ์์: % result = square(3)๋ 3์ ์ ๊ณฑ์ธ 9๋ฅผ ๋ฐํํฉ๋๋ค. % % vector_result = square([1, 2, 3])๋ [1, 4, 9]๋ก ๊ฐ ์์์ ์ ๊ณฑ ๊ฐ์ด % ํฌํจ๋ ๋ฒกํฐ๋ฅผ ๋ฐํํฉ๋๋ค. % % ์ฃผ์: % ์ด ํจ์๋ ์ ๋ ฅ๊ฐ x๋ฅผ ์ ๊ณฑํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ฉฐ, ํจ์ ๋ด๋ถ์์ ์ฌ์ฉ๋๋ % ๋ณ์๋ ์ง์ญ ๋ณ์๋ก ํจ์ ์ธ๋ถ์์๋ ์ํฅ์ ์ฃผ์ง ์์ต๋๋ค. % function [์ถ๋ ฅ์ธ์1, ์ถ๋ ฅ์ธ์2, ...] = ํจ์์ด๋ฆ(์ ๋ ฅ์ธ์1, ์ ๋ ฅ์ธ์2, ...) function y = square(x) % ์ ๋ ฅ๊ฐ x๋ฅผ ์ ๊ณฑํ์ฌ ๋ฐํ, ์ฌ๊ธฐ์ ์ฌ์ฉ๋๋ ๋ณ์๋ ์ง์ญ๋ณ์๋ก ํจ์ ๋ฐ์์ ์ํฅ x y = x^2;โ
- Function Handle
์๋์ ๊ฐ์ด ํจ์๋ฅผ ๋ณ์์ ํ ๋นํ์ฌ ์ฌ์ฉ ๊ฐ๋ฅ ๋งค๊ฐ๋ณ์๋ก ํจ์๋ฅผ ์ ๋ฌํ ๋ ์ฃผ๋ก ์ฌ์ฉ% Function handle ์์ฑ handle_to_square = @square; % Function handle์ ์ฌ์ฉํ์ฌ ํจ์ ํธ์ถ result1 = handle_to_square(5);โ
- eval
๋ฌธ์์ด๋ก ํํ๋ ๊ณ์ฐ์์ ์คํํ๋ ํจ์a = 10; expression = 'a^2'; % a ๋ณ์์ ^2๋ฅผ ๋ฌธ์์ด๋ก ๋ณํ result = eval(expression); % eval์ ์ฌ์ฉํ์ฌ ๋ฌธ์์ด๋ก ์ฃผ์ด์ง ํํ์ ์คํ disp(result); % ๊ฒฐ๊ณผ ์ถ๋ ฅ: 100โ
๊ทธ๋ํ ๊ด๋ จ ๋ด์ฉ
- ๊ธฐ๋ณธ ๊ทธ๋ํ ์์ฑ ๋ฐ ์ค์
x = 0 : 0.1 : 3*pi; % x ๋ฐ์ดํฐ ์ค์ y = sin(x); % y ๋ฐ์ดํฐ ์ค์ plot(x, y) % ๊ทธ๋ํ ์์ฑ ํจ์ ์คํ title('my plot') % ๊ทธ๋ํ ์ ๋ชฉ ์ค์ xlabel('x value') % x์ถ ์ด๋ฆ ์ค์ ylabel('y value') % y์ถ ์ด๋ฆ ์ค์ grid on % ๋๊ธ์ ํ์ ์ค์ grid minor; % ๋๊ธ์ ์ธ๋ถ ์ค์ text(x, y, 'text') % x,y ์ขํ์ ํ ์คํธ ์ถ๊ฐ gtext('gtext') % gui ์์ text ๋ฐ์ค ์ถ๊ฐ ์ฌ์ฉ์๊ฐ ์ํ๋ ์์น๋ก ์กฐ์ ๊ฐ๋ฅ axis([1 5 -10 10]) % x์ถ, y์ถ์ ์์์ ์ ํด๋นํ๋ ์ต์ ํฌ๊ธฐ์ ๋์ ์ ํด๋นํ๋ ์ต๋ ํฌ๊ธฐ ์ค์
- ์ถ ์ค์ ๋ฐ ์คํ์ผ ์กฐ์
currentXRange = xlim; % ํ์ฌ x์ถ ๋ฒ์ ๋ฐํ currentYRange = ylim; % ํ์ฌ y์ถ ๋ฒ์ ๋ฐํ axis auto % ์ถ ์๋ ์ค์ axis manual % ์ถ ์๋ ์ค์ axis equal % ์ถ ๋์ผํ ๋น์จ๋ก ์ค์ axis off % ์ถ ํ์ ๋๊ธฐ axis on % ์ถ ํ์ ์ผ๊ธฐ colormap(parula); % ์์ ๋งต ์ ์ฉ colorbar; % ์์ ๋ฐ ํ์ scatter(x, y, 50, linspace(1, 10 ,length(x)), 'filled'); % ์ฐํฌ๋ ๊ทธ๋ํ ์์ฑ ๋ฐ ์์ ์ค์ % ์ ์คํ์ผ, ๋ง์ปค, ์์ ์ค์ linestyle('solid') marker('.') color('y')
- ๋ค์ค ๊ทธ๋ํ ๋ฐ ๋ฒ๋ก ์ค์
% figure; % ๊ทธ๋ฆผ์ ์ ์ฐฝ์์ ์ด๊ธฐ % Sin(x) ๊ทธ๋ํ ๊ทธ๋ฆฌ๊ธฐ x = linspace(0, 2*pi, 100); y = sin(x); plot(x, y, 'DisplayName', 'Sin(x)'); hold on; % Cos(x) ๊ทธ๋ํ ๊ทธ๋ฆฌ๊ธฐ [ax, h1, h2] = plotyy(x, y, x, cos(x)); set(h1, 'DisplayName', 'Sin(x)'); set(h2, 'DisplayName', 'Cos(x)'); % ํ์คํ ๊ทธ๋จ ์์ฑ (ํ์คํ ๊ทธ๋จ : ์ฐ์๋์ง ์๋ ์ฑ๋ณ, ํ๊ณผ ๋ฑ์ ๋ถํฌ๋ฅผ ๋ํ๋ด๋ ๊ทธ๋ํ) data = randn(1000, 1); edges = -3:0.1:3; histogram(data, edges, 'EdgeColor', 'black', 'FaceColor', [0.8, 0.8, 0.8], 'DisplayName', 'Data'); % ํ์คํ ๊ทธ๋จ์ ํ๊ท ์ ์ถ๊ฐ mean_value = mean(data); plot([mean_value, mean_value], ylim, '--r', 'LineWidth', 2, 'DisplayName', 'Mean'); hold off; % ๋ฒ๋ก ์ถ๊ฐ (๋ฒ๋ก : ํด๋น ๊ทธ๋ํ์ ์ด๋ฆ e.g. ๋ ์จ ๊ทธ๋ํ) legend('show'); legend(ax(1), 'Location', 'NorthWest'); legend(ax(2), 'Location', 'NorthEast');
- ์ ๋๋ฉ์ด์
์์ฑ
figure; % ์ ๋๋ฉ์ด์ ์ ์ํ ๊ทธ๋ฆผ ์์ฑ numFrames = 100; % ํ๋ ์ ์ ์ค์ % ์ ๋๋ฉ์ด์ ์์ฑ for frame = 1:numFrames x = linspace(0, 4*pi, 100); y = sin(x + 0.1 * frame); plot(x, y, 'LineWidth', 2); title('Animated Sinusoidal Wave'); xlabel('X-axis'); ylabel('Y-axis'); drawnow; % ๊ทธ๋ฆผ ๊ฐฑ์ pause(0.1); % ๊ฐ ํ๋ ์ ๊ฐ ์๊ฐ ์ง์ฐ img = imread('example_image.jpg'); % ์ด๋ฏธ์ง ์ฝ๊ธฐ imshow(img); % ์ด๋ฏธ์ง ํ์ title('Example Image'); % ์ด๋ฏธ์ง์ ํ์ดํ ์ถ๊ฐ
- 3์ฐจ์ ๊ทธ๋ํ
์ , ๊ฒฉ์, ๊ณต๊ฐ, ๋ฉด, ๋ฐฉํฅ, ์ฒด์ ์ ๋ํ๋ผ ์ ์๋ 3์ฐจ์ ๊ทธ๋ํ๊ฐ ์์ผ๋ฉฐ
๋ํ์ ์ผ๋ก plot3, mesh, pie, surf๊ฐ ์๋ค. - ๊ธฐํ ๊ทธ๋ํ ๊ด๋ จ ํจ์
% ๋ค์ํ ํํ์ ๊ทธ๋ํ๋ฅผ ํจ๊ป ํ์ fplot(@(x) sin(x), [0, 2*pi]); hold on; fplot(@(x) cos(x), [0, 2*pi]); hold off; % 2D ํ๋กํ ์ต์ ํ์ฉ polarplot(theta, rho, 'r--', 'LineWidth', 2); % 3D ํ๋กํ (scatter3๋ฅผ ์ฌ์ฉํ์ฌ 3D ์ฐํฌ๋ ํ๋กํ ) x = randn(100, 1); y = randn(100, 1); z = randn(100, 1); scatter3(x, y, z, 50, z, 'filled'); % ๋ฑ๊ณ ์ ํ๋กํ contourf(X, Y, Z, 20); % X, Y, Z๋ ๊ทธ๋ฆฌ๊ณ ์ ํ๋ ํจ์์ ๊ทธ๋ฆฌ๋์ ๊ฐ colorbar; % ๊ทธ๋ํ ์ ์ฅ ๋ฐ ๋ถ๋ฌ์ค๊ธฐ, gcf : ๊ทธ๋ํ ํ์ผ ํ์, fig : MATLAB์ ๊ทธ๋ฆผ ํ์ผ ํ์ฅ์ saveas(gcf, 'My plot', 'fig'); % openfig('My plot'); % ๊ทธ๋ํ ๋ถ๋ฌ์ค๊ธฐ
๊ธฐํ ๋ด์ฉ
- ์ฌ์ด๋ ๊ธฐ๋ฅ
mat ํ์์ ์ฌ์ด๋ ํ์ผ์ load ํ sound(data, Fs) ๋ช ๋ น์ด๋ฅผ ํตํด ์ฌ์ด๋ ์ฌ์์ด ๊ฐ๋ฅ
(โป Fs (์ํ๋ง ์ฃผํ์๊ฐ)์ ์กฐ์ ํ์ฌ ์ฌ์ ์๋ ์กฐ์ ๊ฐ๋ฅ)
๐ MATLAB ๋๋จธ์ง ํจ์ & ๋ช
๋ น์ด ์ ๋ฆฌ
๋ช ๋ น์ด
ํ๋ฉด์ ์ง์ฐ๊ฑฐ๋ ๋ณ์๋ฅผ ์ญ์ ํ๋ ๋ฑ์ ์์ ์ ์ํํ๋ฉฐ ์ผ๋ฐ์ ์ผ๋ก ๋ฐํ๋๋ ๊ฒฐ๊ณผ๊ฐ ์๊ณ ํ๋ฉด์ ์ถ๋ ฅ๋๋ ๊ฐ์ด ์์
- clc: ํ๋ฉด์ clear
- clear: ๋ณ์๋ฅผ ์ญ์
- realmax, realmin: ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฐ์ฅ ํฐ ์์ ์์ ์๋ฅผ ๋ฐํ
- ;: ์ธ๋ฏธ์ฝ๋ก ์ ๋ถ์ผ ๊ฒฝ์ฐ ๊ฒฐ๊ณผ ์ฐฝ์์ ํด๋น ๋ด์ฉ์ ํ์ํ์ง ์์
- ...: ์ค๋ฐ๊ฟ์ ๋ํ๋
- who: ์ฌ์ฉ ์ค์ธ ๋ณ์๋ค์ ์ด๋ฆ๋ง์ ์กฐํ
- whos: ์ฌ์ฉ ์ค์ธ ๋ณ์๋ค์ ๋ชจ๋ ์ ๋ณด๋ฅผ ์กฐํ
- doc + ๋ช ๋ น์ด: ํด๋น ๋ช ๋ น์ด์ ๋ํ ์ ๋ณด ๋ฌธ์๋ฅผ ํ์
- lookfor '๋ด์ฉ': ํด๋น ๋ด์ฉ์ด ํฌํจ๋ ๋ชจ๋ ๋ช ๋ น์ด๋ฅผ ๋ณด์ฌ์ค
- %: ์ฃผ์ ์ฒ๋ฆฌ ๊ธฐํธ๋ก ์ฌ์ฉ
- save xxx.mat: ํ์ฌ ์์ ์ค์ธ ๋ณ์๋ฅผ ํ์ผ๋ก ์ ์ฅ
- load xxx.mat: ํ์ผ์์ ๋ณ์๋ฅผ ๋ถ๋ฌ์ด
- which: ํน์ ํจ์ ๋๋ ์คํฌ๋ฆฝํธ ํ์ผ์ด ํ์ฌ ์์ ์ค์ธ ๊ฒฝ๋ก์์ ์ด๋์ ์์นํด ์๋์ง๋ฅผ ๋ํ๋
ํจ์
ํน์ ๊ธฐ๋ฅ์ ์ํํ๋ ์ฝ๋์ ๋ชจ์์ผ๋ก ์
๋ ฅ์ ๋ฐ์ ํน์ ๊ณ์ฐ์ ์ํํ๊ณ ์ผ๋ฐ์ ์ผ๋ก ํด๋น ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ
MATLAB์๋ ๋งค์ฐ ๋ง์ ํจ์๊ฐ ์์ผ๋ฉฐ ์ฌ์ฉ ๊ฐ๋ฅ์ฑ์ด ์๋ ํจ์๋ง ์ ๋ฆฌ
- A .* B: ํ๋ ฌ์ ๋์ผ ์์น์ ์์ ๊ณฑ ์ฐ์ฐ์ ์ํ
- A': ํ๋ ฌ์ ์ ์น์ํด
- x = A \ b: LU ์ญ๋ณํ์ ์ฌ์ฉํ์ฌ ์ ํ ์์คํ ์ ํด๊ฒฐ
- length(A): 1D ํ๋ ฌ A์ ํ ํฌ๊ธฐ๋ฅผ ์ถ๋ ฅ
- find : 0์ด ์๋ ์์๋ฅผ ์ถ๋ ฅ
- sin(x): ์ฃผ์ด์ง ๊ฐ๋ x์ ์ฌ์ธ ๊ฐ์ ๋ฐํ
- cos(x): ์ฃผ์ด์ง ๊ฐ๋ x์ ์ฝ์ฌ์ธ ๊ฐ์ ๋ฐํ
- exp(x): ์์ฐ ๋ก๊ทธ์ ๋ฐ์ธ e์ x ์น์ ๋ฐํ
- abs(x): ์ฃผ์ด์ง ์ซ์ x์ ์ ๋๊ฐ์ ๋ฐํ
- sqrt(x): ์ฃผ์ด์ง ์ซ์ x์ ์ ๊ณฑ๊ทผ์ ๋ฐํํฉ
- rem(x, y): x๋ฅผ y๋ก ๋๋ ๋๋จธ์ง๋ฅผ ๋ฐํ
- round(x): ์ฃผ์ด์ง ์ซ์ x๋ฅผ ๊ฐ์ฅ ๊ฐ๊น์ด ์ ์๋ก ๋ฐ์ฌ๋ฆผ
- floor(x): ์ฃผ์ด์ง ์ซ์ x๋ฅผ ๋ด๋ฆผํ์ฌ ๊ฐ์ฅ ๊ฐ๊น์ด ์ ์๋ก ๋ฐํ
- fix(x): ์์ ๋ถ๋ถ์ ์ ๊ฑฐํ์ฌ ๊ฐ์ฅ ๊ฐ๊น์ด ์ ์๋ก ๋ด๋ฆผ
- sign(x): ์ฃผ์ด์ง ์ซ์ x์ ๋ถํธ๋ฅผ ๋ฐํ (์์: 1, ์์: -1, 0: 0)
- ceil(x): ์ฃผ์ด์ง ์ซ์ x๋ฅผ ์ฌ๋ฆผํ์ฌ ๊ฐ์ฅ ๊ฐ๊น์ด ์ ์๋ก ๋ฐํ
- max(A): ํ๋ ฌ A์ ์ต๋๊ฐ์ ๋ฐํ
- sum(A): ํ๋ ฌ A์ ๋ชจ๋ ์์์ ํฉ์ ๋ฐํ
- min(A): ํ๋ ฌ A์ ์ต์๊ฐ์ ๋ฐํ
- prod(A): ํ๋ ฌ A์ ๋ชจ๋ ์์์ ๊ณฑ์ ๋ฐํ
- mean(A): ํ๋ ฌ A์ ํ๊ท ๊ฐ์ ๋ฐํ
- sort(A): ํ๋ ฌ A์ ์์๋ค์ ์ ๋ ฌํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ
- std(A): ํ๋ ฌ A์ ํ์ค ํธ์ฐจ๋ฅผ ๋ฐํ
- eig(B): ์ ๋ฐฉ ํ๋ ฌ B์ ๊ณ ์ ๊ฐ(eigenvalue)์ ๋ฐํ
- chol(B): ์์ ์ ๋ถํธ ํ๋ ฌ B์ ์ด๋ ์คํค(Cholesky) ๋ถํด๋ฅผ ๋ฐํ
- svd(B): ํ๋ ฌ B์ ํน์๊ฐ ๋ถํด(Singular Value Decomposition)๋ฅผ ๋ฐํ
- inv(B): ์ ๋ฐฉ ํ๋ ฌ B์ ์ญํ๋ ฌ์ ๋ฐํ
- lu(B): ํ๋ ฌ B์ LU (Lower-Upper) ๋ถํด๋ฅผ ๋ฐํ
- qr(B): ํ๋ ฌ B์ QR ๋ถํด๋ฅผ ๋ฐํ
- expm(B): ํ๋ ฌ B์ ์ง์ ํจ์ e^A๋ฅผ ๋ฐํ
- sqrtm(B): ํ๋ ฌ B์ ์ ๊ณฑ๊ทผ์ ๋ฐํ
- poly(B): ํ๋ ฌ B์ ๊ณ ์ ๊ฐ ๋คํญ์์ ๊ณ์๋ฅผ ๋ฐํ
- det(B): ์ ๋ฐฉ ํ๋ ฌ B์ determinant(ํ๋ ฌ์)์ ๋ฐํ
- size(B): ํ๋ ฌ B์ ํ๊ณผ ์ด์ ํฌ๊ธฐ๋ฅผ ๋ฐํ
- length(A): 1D ํ๋ ฌ A์ ํ ํฌ๊ธฐ๋ฅผ ๋ฐํ
- norm(B): ํ๋ ฌ B์ ํน์ ๋(norm)์ ๋ฐํ
- cond(B): ํ๋ ฌ B์ ์กฐ๊ฑด์(condition number)๋ฅผ ๋ฐํ
- rank(B): ํ๋ ฌ B์ ๋ญํฌ(rank)๋ฅผ ๋ฐํ
- isequal(C, D): ๋ ๋ณ์ C์ D๊ฐ ์๋ก ๋์ผํ์ง ์ฌ๋ถ๋ฅผ ํ์ธ
- isfinite(C): ํ๋ ฌ C์ ๊ฐ ์์๊ฐ ์ ํํ์ง ์ฌ๋ถ๋ฅผ ๋ฐํ
- isnan(C): ํ๋ ฌ C์ ๊ฐ ์์๊ฐ NaN(Not-a-Number)์ธ์ง ์ฌ๋ถ๋ฅผ ๋ฐํ
- isinf(C): ํ๋ ฌ C์ ๊ฐ ์์๊ฐ ๋ฌดํ๋์ธ์ง ์ฌ๋ถ๋ฅผ ๋ฐํ
- isempty(C): ๋ฐฐ์ด ๋๋ ํ๋ ฌ C๊ฐ ๋น์ด ์๋์ง ์ฌ๋ถ๋ฅผ ๋ฐํ
- isnumeric(C): C๊ฐ ์ซ์ํ์ธ์ง ์ฌ๋ถ๋ฅผ ๋ฐํ
- isinteger(C): C๊ฐ ์ ์ํ์ธ์ง ์ฌ๋ถ๋ฅผ ๋ฐํ
- isreal(C): C๊ฐ ์ค์ํ์ธ์ง ์ฌ๋ถ๋ฅผ ๋ฐํ
- islogical(C): C๊ฐ ๋ ผ๋ฆฌํ์ธ์ง ์ฌ๋ถ๋ฅผ ๋ฐํ
- ischar(C): C๊ฐ ๋ฌธ์ํ์ธ์ง ์ฌ๋ถ๋ฅผ ๋ฐํ
- isglobal('C'): C๊ฐ ์ ์ญ ๋ณ์์ธ์ง ์ฌ๋ถ๋ฅผ ๋ฐํ
- isscalar(C): C๊ฐ ์ค์นผ๋ผ(1x1 ํ๋ ฌ)์ธ์ง ์ฌ๋ถ๋ฅผ ๋ฐํ
- isvector(C): C๊ฐ ๋ฒกํฐ์ธ์ง ์ฌ๋ถ๋ฅผ ๋ฐํ
- ismatrix(C): C๊ฐ ํ๋ ฌ์ธ์ง ์ฌ๋ถ๋ฅผ ๋ฐํ
- isrow(C): C๊ฐ ํ ๋ฒกํฐ์ธ์ง ์ฌ๋ถ๋ฅผ ๋ฐํ
- iscolumn(C): C๊ฐ ์ด ๋ฒกํฐ์ธ์ง ์ฌ๋ถ๋ฅผ ๋ฐํ
- any(C): C์ ์์ ์ค ํ๋๋ผ๋ ์ฐธ์ธ์ง ์ฌ๋ถ๋ฅผ ๋ฐํ
- all(C): C์ ๋ชจ๋ ์์๊ฐ ์ฐธ์ธ์ง ์ฌ๋ถ๋ฅผ ๋ฐํ
- exist('C'): ํ์ฌ ์์ ์ค์ธ ๊ณต๊ฐ์ ๋ณ์ C๊ฐ ์กด์ฌํ๋์ง ์ฌ๋ถ๋ฅผ ๋ฐํ
- ceil(x): ์ฃผ์ด์ง ์ซ์ x๋ฅผ ์ฌ๋ฆผํ์ฌ ๊ฐ์ฅ ๊ฐ๊น์ด ์ ์๋ก ๋ฐํ
- unique(D): ํ๋ ฌ D์ ์ค๋ณต๋ ์์๋ฅผ ์ ๊ฑฐํ๊ณ , ์ ์ผํ(unique) ์์๋ค๋ก ์ด๋ฃจ์ด์ง ์ ๋ ฌ๋ ๋ฒกํฐ๋ฅผ ๋ฐํ
'embedded' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
AutoSAR ์ ๋ฆฌ (0) | 2024.01.16 |
---|---|
Simulink ์ ๋ฆฌ (0) | 2024.01.11 |
[ubuntu] MySQL ํ์ฉ IoT ๋ฐ์ดํฐ ์ ์ด ์ค์ต (0) | 2023.11.23 |
[ubuntu] ์์ผ ํต์ ์ฑํ ์๋ฒ (0) | 2023.11.23 |
[ubuntu] ์์ผ ํต์ ๋ฐ์ดํฐ ์ ์ก ๋ฐ ์ ์ฅ (0) | 2023.11.20 |