clc # command window 지우기
whos  # 작업 공간의 변수들 확인하기
clear 변수명 # 해당 변수를 지울때 사용 , 실행 후 workspace에 없음
(% 와 #)  # 한줄 주석

배열의 정의 

, 또는 ' ' 공백을 이용하여 열을 구분

; 을 통해서 행을 구분

>> A = [1 2 3]
A =

   1   2   3

>> B = [4; 5; 6]
B =

   4
   5
   6
   
>> C = [1 2 3; 4 5 6]
C =

   1   2   3
   4   5   6

size() 함수

size() 함수를 활용하여 각 배열의 행과 열의 크기를 알 수 있음

>> size(A)
ans =

   1   3

>> size(B)
ans =

   3   1
   
>> size(C)
ans =

   2   3

 


zeros(), ones()

배열의 요소를 모두 zeros()의 경우 0, ones()의 경우 1을 갖는 방법.

zeros(row, col)

>> zeros(3,3)
ans =

   0   0   0
   0   0   0
   0   0   0

>> ones(2,1)
ans =

   1
   1

 


배열의 연산

 

: (콜론)

: 연산자를 활용하여 연속된 값의 생성인덱싱에 사용되는 범위 지정을 할 수 있음

시작값:증가값:끝 (이상: : 이하) (증가값이 1일 경우 생략 가능)

 

배열의 정의

>> a = [-1:0.1:1]
a =

 Columns 1 through 5:

  -1.0000  -0.9000  -0.8000  -0.7000  -0.6000

 Columns 6 through 10:

  -0.5000  -0.4000  -0.3000  -0.2000  -0.1000

 Columns 11 through 15:

        0   0.1000   0.2000   0.3000   0.4000

 Columns 16 through 20:

   0.5000   0.6000   0.7000   0.8000   0.9000

 Column 21:

   1.0000
>> a = [1:2:6 -1 0]
a =

   1   3   5  -1   0

 

인덱싱

인덱스를 셀때 다른 언어와 달리 첫번째 요소의 인덱스는 1부터 시작한다

>> a = [1:2:6 -1 0]
a =

   1   3   5  -1   0

>> a(1)
ans = 1

>> a(3:5)
ans =

   5  -1   0

 


+ (더하기), - (빼기)

배열과 스칼라의 연산

배열에 스칼라를 더하거나 빼면 배열의 모든 요소에 연산이 적용

>> a = [1 2 3; 4 5 6]
a =

   1   2   3
   4   5   6

>> a + 2
ans =

   3   4   5
   6   7   8

>> a - 2
ans =

  -1   0   1
   2   3   4

 

배열과 배열의 연산

같은 크기의 배열끼리 요소별 연산 수행
배열끼리 더하거나 빼려면 두 배열의 크기(차원)가 같아야 함. 다를 경우 오류

>> a = [1:2:6 -1 0]
a =

   1   3   5  -1   0

>> b = [1 2 3 4 5]
b =

   1   2   3   4   5

>> a + b
ans =

   2   5   8   3   5

>>  a - b
ans =

   0   1   2  -5  -5

*(곱셈), / (나눗셈)

배열과 스칼라 연산

배열에 스칼라를 곱하거나 나누면 배열의 모든 요소에 연산이 적용

>> a = [1 2 3; 4 5 6]
a =

   1   2   3
   4   5   6

>> a * 2
ans =

    2    4    6
    8   10   12

>> a / 2
ans =

   0.5000   1.0000   1.5000
   2.0000   2.5000   3.0000

 

배열과 배열 연산

    1) 요소별 연산 ( .* , ./, .\)

같은 크기의 배열끼리 각 요소별 연산을 수행.  ./ 와 .\은 동일함

(문장 끝의 ; 차이: ;이 있으면 출력 생략, 없으면 출력)

>> a = [1 2 3; 4 5 6];
>> b = [10 20 30; 40 50 60];
>> a .* b
ans =

    10    40    90
   160   250   360

>> a ./ b
ans =

   0.1000   0.1000   0.1000
   0.1000   0.1000   0.1000

 

    2) 행렬 연산

        (1)  * 곱셈 (A * B)

A의 열 개수와 B의 행 개수가 같아야함 (A의 행 개수와 B의 열 개수가 같은 경우 X)

 

만약 A가 (m × n) 행렬이고, B가 (p × q) 행렬이라면,
A * B가 정의되려면 반드시 A의 열 개수 n과 B의 행 개수 p가 같아야 함

  • A (m × n) * B (p × q)
  • 행렬 곱셈 가능 조건: n = p (A의 열 개수 = B의 행 개수)
  • 결과 행렬의 크기: (m × q)
>> A = [1 2 3; 4 5 6]; # (2X3)
>> B = [10; 20; 30]; # (3X1)
>> C = A * B 

C =       #(2X1)

   140
   320

 

 

         (2) / 나눗셈 ( A / B |  A \ B)

 

오른쪽 나눗셈

A / B = A * inv(B) 즉, A * B의 역행렬임

그렇다면 행렬 곱셈과 마찬가지로 A의 열과 B의 행의 크기가 같아야 하며, 연산 후 결과값의 행의 크기는 A와, 열의 크기는 B와 동일해야한다.  이때, 역행렬은 늘 행과 열의 크기가 같으므로 

A (m x n) / B (n x n) = C(m, n) 이 된다

 

 

왼쪽 나눗셈

A \ B = inv(A) * B 즉, A의 역행렬 * B 이다.

그렇다면 위와 마찬가지로 행렬 조건과 역행렬의 조건을 고려한다면

A (n, n) \ B(n,p) = C(n,p) 이 된다.


 

역행렬


^(제곱)

스칼라 제곱 ( .^) 

곱셈과 나눗셈은 스칼라와 연산할때 .이 필요 없지만 제곱 연산자는 있어야함

>> t = 0:0.1:10;

>> y = t ^ 2;
error: for x^y, only square matrix arguments are permitted and one argu
ment must be scalar.  Use .^ for elementwise power.

>> y = t .^ 2;

 


선형 그래프

plot() 선 그래프

plot(x값, y값) 

xlabel() , ylabel() 각각 x축과  y축의 label 추가

>> t = 0:0.1:10;
>> y = t .* t;

>> plot(t, y)
>> xlabel("time")
>> ylabel("t^2")

 


반복문

for i  = 최소값:증감값:최대값
명령어
endfor

 

>> for i = 1:3:5
i
endfor
i = 1
i = 4


>> v = [1,2,3,4,5]
v =

   1   2   3   4   5

>> for i = 1:1:5
v(i) = i
endfor
v =

   1   2   3   4   5

v =

   1   2   3   4   5

v =

   1   2   3   4   5

v =

   1   2   3   4   5

v =

   1   2   3   4   5


>> for i = 1:1:5
v(6-i) = i
endfor
v =

   1   2   3   4   1

v =

   1   2   3   2   1

v =

   1   2   3   2   1

v =

   1   4   3   2   1

v =

   5   4   3   2   1

 

이중 for문

for i = 1:3
  for j = 1:3
    p(i,j) = 3 * (i-1) + j
   endfor
endfor



p =

   1   2   3
   4   5   6
   7   8   9

p =

   1   2   3
   4   5   6
   7   8   9

p =

   1   2   3
   4   5   6
   7   8   9

p =

   1   2   3
   4   5   6
   7   8   9

p =

   1   2   3
   4   5   6
   7   8   9

p =

   1   2   3
   4   5   6
   7   8   9

p =

   1   2   3
   4   5   6
   7   8   9

p =

   1   2   3
   4   5   6
   7   8   9

p =

   1   2   3
   4   5   6
   7   8   9

 

sin() 사인 함수

sin(90)의 결과가 1이 아닌 이유: 인자의 단위가 라디안이기 때문이다 따라서

해당 인자를 r(각도) * 90 / 180 으로 입력해야 원하는 각에 대한 값이 나온다. 

>> sin(90)
ans = 0.8940
>> sin(90 * pi / 180)
ans = 1

 exp() 함수

exp(x) 은 e^x의 값이다

>> exp(1)
ans = 2.7183

사용자 정의 함수

function 반환변수 = 함수이름(매개변수)
    반환변수 = 함수 코드;
endfunction

 % sum function

 function returnValue = sum(a,b)
   returnValue = a + b;
 endfunction
 
 
 >> sum(1,2)
ans = 3

+ Recent posts