sobota, 29 czerwca 2013

[Matlab] Operacje na wektorach i macierzach

Matlab jako jedno z najlepszych narzędzi do obliczeń inżynierskich oferuje sporo przydatnych funkcji do operacji na maciezach i wektorach. Oto niektóre z nich:
  • transpozycja (' lub funkcja transpose)
>> a = [1 2 3 4];
>> a'

ans =

     1
     2
     3
     4

>> transpose(a)

ans =

     1
     2
     3
     4
  • konkatenacja []
>> [a 1 2 3]

ans =

     1     2     3     4     1     2     3
  • podzbiór ()
>> a(2:3)

ans =

     2     3
  • linspace(elementy równomiernie rozłożone pomiędzy dwoma wartościami, pierwsze dwa argumenty to zakres, trzeci to ilość elementów)
>> linspace(0,5,6)

ans =

     0     1     2     3     4     5
  • suma kumulatywna (do każdego elementu dodawana jest suma poprzednich elementów)
>> cumsum(a)

ans =

     1     3     6    10
  • diff (różnica pomiędzy kolejnymi elementami, zwraca wektor o 1 element mniejszy od wektora wejściowego)
>> diff(a)

ans =

     1     1     1
  • podzbiór warunkowy
>> a(a>2)

ans =

     3     4
  • unique (zwraca posortowane unikatowe elementy)
>> unique([a 6 4 5])

ans =

     1     2     3     4     5     6
  • any (zwraca 0 lub jeden w zależności od tego, czy warunek jest spełniony)
>> any(a == 2)

ans =

     1

>> any(a == 0)

ans =

     0
  • find (zwraca indeksy spełniające dany warunek)
>> b = [4 3 0 1];
>> find (b==3)

ans =

     2
  • macierz jednostkowa
>> eye(3)

ans =

     1     0     0
     0     1     0
     0     0     1
  • transformacja macierz - wektor - operator (:)
>> g = eye(3);
>> g(:)

ans =

     1
     0
     0
     0
     1
     0
     0
     0
     1
  • wybór wiersza / kolumny
>> g(3,:)

ans =

     0     0     1

>> g(:,3)

ans =

     0
     0
     1