기본
save filename : 파일 저장
clear : 작업 공간에서 모든 변수 지우기
load filename : 변수 다시 업로드
clc : 작업 공간 지우기
행렬 다루기
1. 기본 행렬 생성
a = [1 2] or a = [1,2] 는 행 벡터를 나타냄
a = [1;2] 는 열 벡터를 나타냄
x = [5 6 7;8 9 10] 이런식으로 작성하면, n차원 배열도 만들 수 있음
x = 1:4 ⇒ [1 2 3 4] 콜론 연산자를 사용하면, 더 쉽게 배열을 만들 수 있음 (파이썬과 인덱스 다루는 데에 살짝 차이가 있음)
x = 1:0.5:4 라고 작성하면, 간격이 0.5인 배열이 생성됨
x = linspace(1,10,5), linspace 연산자를 이용하면, 1부터 10 사이에 요소가 5개 들어가도록 배열을 구성할 수 있음
‘은 전치 연산자로써 사용됨, x=x’ 형태로 사용할 수 있음
2. random 행렬 생성
x = rand(5) : 5by5 matrix 생성
x = rand(1,2) : 1by2 matrix 생성
zeros 함수로 0 행렬도 생성 가능함
x = randi(20,5,7) : 1-20의 값을 가지는 5by7 matrix 생성
3. data에서 행렬 뽑아 오기
x = dataname(1,2) 하면, data에서 1행2열에 있는 값을 가져옴
x = dataname(end,3) 하면, 마지막 줄의 3열에 있는 값을 가져옴
dataname(:,2)는 두 번째 열 모든 값들을 의미함
volumes = data(:,end-1:end), 이런식으로 표기하면, 마지막 두 열을 포함하게 구할 수 있음
v2(1) = 0.5, 요소의 값을 변경 할 수 있음
4. 행렬의 연산
v2 = v1 + 1, v1에서 모든 요소에 1을 더한 새로운 벡터 만들 수 있음
max는 최댓값 구하는 함수
행렬의 요소 사이의 곱 연산을 원하면, ‘.*’ 연산자를 이용해야 함
행렬 곱 연산을 원하면, ‘*’ 연산자 이용
size는 data size를 의미함
[dr,dc] = size(data), 이런식으로 사용하면, 행과 열에 대한 모든 값 받아올 수 있음
numel : 데이터 갯수 받아올 수 있음
그래프 plotting
1. data 그래프에 삽입하기
plot(sample,mass1), 이 때 파라미터는 x축과 y축
plot(sample,mass2,"r*"), 이 때 마지막 파라미터는 그래프에 표시할 마커와 선, 그리고 색상을 의미함
(— : 파선, : : 점선, .- : 일 점 쇄선)
hold on 명령어를 사용하면, 마킹한 것 위에 또 마킹을 할 수 있음
hold on
plot(sample,mass1,"ks") 이것과 같이 표기하면 OK
반대는 hold off 명령어를 사용하면 됨
plot(v1) 이런식으로 matrix나 vector를 파라미터로 입력해주면. 더 쉽게 그래프 그릴 수 있음
linewidth 함수로 간격 지정 가능 : plot(v1,"LineWidth",3)
plot(sample,v1,"ro-","LineWidth",4) : 지금까지 활용했던 파라미터 모두 넣을 수 있음
2. 그래프에 주석 달기
title : title(’name”) 이런식으로 제목 지정 가능
ylable : y축 라벨링 가능
legend : legend("Exp A", "Exp B") 이런식으로 범례 지정 가능
data 가져오기
load : data 가져올 수 있음
sortrow : 행 순으로 정렬 가능한 함수
test = pi<4 와 같이 T/F를 변수에 할당할 수도 있음
v=v1(v1<4) 이런식으로 filtering 해줄 수도 있음
v1(v1<4)=0 filtering 한 값들을 변경해 줄수도 있음
if/loop 문법
1. if문
if doPlot
plot(density)
title("Sample Densities")
xticklabels(element)
ylabel("Density (g/cm^3)")
else
disp("The density of " + element ...
+ " is " + density)
end
위 문장에서 doplot=1일 때 문장이 실행 됨
파이썬과는 조금 다른 문법을 가지고 있음
2. for문
for idx = 1:7
hold on
plot(idx,density(idx),'*')
hold off
pause(0.2)
end
마찬가지로 파이썬과는 조금 다른 문법을 가지고 있음
MATLAB Onramp 요약
기본 구문
예제 | 설명 |
등호( =)를 사용하여 변수를 만듭니다.좌변(x)은 우변의 값(pi)을 포함하는 변수 이름입니다. | |
괄호를 사용하여 함수에 입력값을 전달할 수 있습니다. |
데스크탑 관리
함수 | 예제 | 설명 |
save data.mat | 현재 작업 공간을 MAT 파일로 저장합니다. | |
load data.mat | MAT 파일의 변수를 작업 공간으로 불러옵니다. | |
clear | 작업 공간에서 모든 변수를 지웁니다. | |
clc | 명령 창에서 모든 텍스트를 지웁니다. | |
format long | 숫자형 출력값이 표시되는 방법을 변경합니다. |
배열 유형
예제 | 설명 |
4 | 스칼라 |
[3 5] | 행 벡터 |
[1;3] | 열 벡터 |
[3 4 5;6 7 8] | 행렬 |
요소 간 간격이 균일한 벡터
예제 | 설명 |
1:4 | |
1:0.5:5 | 1에서 4까지 간격이 0.5인 요소들로 구성된 벡터를 만듭니다. |
linspace(1,10,5) | 요소가 5개인 벡터를 만듭니다. 값의 범위는 1에서 10까지이며 간격이 균일합니다. |
행렬 만들기
예제 | 설명 |
rand(2) | 2개 행과 2개 열을 갖는 정사각 행렬을 만듭니다. |
zeros(2,3) | 2개 행과 3개 열을 갖는 사각 행렬을 만듭니다. |
인덱싱
예제 | 설명 |
마지막 행의 두 번째 열에 있는 요소에 액세스합니다. | |
A(2,:) | 두 번째 행 전체에 액세스합니다. |
A(1:3,:) | 처음 3개 행의 모든 열에 액세스합니다. |
A(2) = 11 | 배열의 두 번째 요소 값을 11로 변경합니다. |
배열 연산
예제 | 설명 |
[1 1; 1 1]*[2 2;2 2]
ans =
4 4
4 4 | 행렬 곱셈을 수행합니다. |
[1 1; 1 1].*[2 2;2 2]
ans =
2 2
2 2 | 요소별 곱셈을 수행합니다. |
여러 출력값
예제 | 설명 |
x의 행 개수와 열 개수를 두 개의 다른 변수에 저장합니다. | |
x의 최솟값과 그 인덱스 값을 계산합니다. |
도움말 문서
예제 | 설명 |
doc randi | randi 함수에 대한 도움말 문서 페이지를 엽니다. |
플로팅
예제 | 설명 |
plot(x,y,"ro-","LineWidth",5) | 굵은 선 너비와 원( o) 마커를 사용하여빨간색(r) 파선(--)을 플로팅합니다. |
hold on | 기존 플롯에 다음 선을 추가합니다. |
hold off | 다음에 플로팅되는 선을 위해 새 좌표축을 만듭니다. |
title("My Title") | 레이블을 플롯에 추가합니다. |
테이블 사용
예제 | 설명 |
테이블 data에서변수 HeightYards를 추출합니다. | |
data.HeightMeters = data.HeightYards*0.9144 | 기존 데이터에서 테이블 변수를 파생합니다. |
논리형
예제 | 설명 |
벡터를 값 12와 비교합니다. | |
v1에서 6보다 큰 모든 요소를 추출합니다. | |
x(x==999) = 1 | x에서 999에 해당하는 값을 모두 값 1로 바꿉니다. |
프로그래밍
예제 | 설명 |
if x > 0.5
y = 3
else
y = 4
end | x가 0.5보다 클 경우 y의 값을 3으로 설정합니다.그렇지 않을 경우 y의 값을 4로 설정합니다. |
for c = 1:3
disp(c)
end | 루프 카운터( c)는값 1:3(1, 2 및 3)을 거칩니다.루프 본문은 c의 각 값을 표시합니다. |
