MATLAB.DOC

(125 KB) Pobierz
MATLAB

MATLAB

Podstawy

help help              - lista słów kluczowych

help słowo_kluczowe              - opis znaczenia słowa kluczowego

demo              - wykonanie polecenia zewnętrznego demo.m

exit              - wyjście z MATLABa

quit              - j.w.

Macierze – sposoby tworzenia i zapisu

Jedynym typem obiektu w MATLABie jest macierz prostokątna . W szczególności macierze mogą być wektorami – wierszami lub kolumnami albo skalarami. Macierze mogą być tworzone poprzez

·         wprowadzanie bezpośrednio z klawiatury,

·         wczytanie pliku .m ze zdefiniowaną macierzą,

·         wygenerowanie przez funkcję,

·         załadowanie z pliku zewnętrznego .mat.

Macierze – sposoby notacji

Spacja oddziela elementy wiersza, średnik oddziela wiersze

              A = [ 1 2 3; 4 5 6; 7 8 9 ]

Przecinek też oddziela elementy wiersza

              A = [ 1, 2, 3; 4, 5, 6; 7, 8, 9 ]

ENTER też oddziela wiersze

              A = [ 1 2 3

              4 5 6

              7 8 9 ]                                         

Zauważmy, że nie potrzeba deklarować rozmiaru macierzy.

A = [ X Y; Z ]              - oznacza macierz , wymiary muszą się zgadzać.

A = [ A; [ 10 11 12 ] ] - dodaje do A wiersz [ 10 11 12 ]

A = [] - przyporządkowuje A macierz pustą

A(1, 2) - odwołanie do elementu macierzy o indeksie (1, 2)

Jeśli A = [ 1 2 ], to przypisanie A(5) = 5 spowoduje odpowiednie zwiększenie wymiaru A i uzupełnienie zerami: A = [ 1 2 0 0 5 ].

Używanie dwukropka

A = J:K              - wektor-wiersz z liczbami od J do K, pusty, jeśli J > K (dwukropek oznacza tu “od – do”)

A = J:I:K              - wektor-wiersz z liczbami od J do K z przyrostem I (przyrost może być do-datni lub ujemny)

A(:,J)                            - J-ta kolumna A (dwukropek oznacza tu “wszystkie indeksy”)

A(1:5,3)              - macierz wymiaru 5x1 utworzona z pierwszych pięciu elementów trzeciej kolumny A.

Załóżmy, że A ma wymiar nxn:

A(1:5,n-3:n)              - macierz 5x4 utworzona z pierwszych pięciu wierszy ostatnich czterech kolumn.

A(1:5,:)              - pierwszych pięć wierszy macierzy A.

Ogólnie, jeśli v, w – wektory o składowych całkowitych, to A(v, w) oznacza macierz o elementach A z wierszy o indeksach równych kolejnym składowym wektora v, (tzn. po-numerowanych według wektora v) i z kolumn ponumerowanych według elementów we-ktora w.

Przykłady:

A(: ,n:-1:1)              - przestawia kolumny A

A(:, [ 3 5 10 ]) = B(:,1:3)              - zamienia trzecią, piątą i dziesiątą kolumnę A pierwszymi trzema kolumnami B.

A([ 1,5 ],:) = A([ 5, 1 ],:)              - wymienia wiersz pierwszy z piątym macierzy A

A(:,[ 2 4 ]) = []              - usuwa drugą i czwartą kolumnę z macierzy A

B = A(:)              - wszystkie elementy A układane są w jeden wektor kolumnowy B

A(:) = B              - operacja odwrotna, B jest wektorem-kolumną, macierz A (musi wcześniej istnieć) wypełnia się elementami B.

Używanie wektorów zero-jedynkowych

Jeżeli L jest wektorem długości m o elementach zero lub jeden, A – macierzą wymiaru nxn, to A(L,:) wybiera wiersze A o numerach, dla których składowa L jest różna od 0.

Macierze o elementach zespolonych

Należy najpierw zdefiniować jednostkę urojoną, np.

              i = sqrt(-1)

a następnie można tworzyć macierze zespolone, np.

              A = [ 1 2; 3 4 ] + i*[ 5 6; 7 8 ]

lub

              A = [ 1+5*i 2+6*i; 3+7*i 4+8*i ]

(uwaga na spacje!).

Elementarne operacje i funkcje na macierzach

A+B              - dodawanie, macierze muszą mieć te same wymiary. Jeżeli jednym z operandów jest skalar, to jest dodawany do wszystkich elementów macierzy.

Analogiczne zasady obowiązują dla:

A-B              - odejmowania

A*B              - mnożenia

A              - transponowanie (z zamianą elementów na sprzężone)

Potęgowanie

Operacje potęgowania to:

A^p oraz p^A (A – macierz kwadratowa, p-skalar)

Dzielenie

A\B = inv(A)*B              - jeśli A kwadratowa i nieosobliwa

B/A = B*inv(A)              - A kwadratowa i nieosobliwa

Obliczanie wykonywane jest bez odwracania przez rozwiązanie układu A*X = B lub X*A = B. A\B jest wiec określone jeśli B ma tyle wierszy co A. Jeśli A jest kwadratowa, używana jest metoda eliminacji Gaussa z odpowiednim komunikatem w przypadku osobliwości A.  Jeśli A prostokątna, używana jest metoda najmniejszych kwadratów do “rozwiązania” odpowied-niego układu równań. Wynikiem jest macierz X wymiaru mxn, gdzie m – liczba wierszy A, n – liczba kolumn B.

              B/A = (A’\B’)’

Operacje typu element-element

Poprzedzając symbol operacji kropką “.” zamieniamy ją na operację typu “element-element”:

A .* B              - A i B tego samego wymiaru, mnożenie odbywa się metodą “element A * odpowiedni element B

A .\ B, A ./ B              - dzielenie

A .^ B              - potęgowanie, np. 2 .^ [ 1 2 3 4 ] daje wektor [ 2 4 8 16 ]. Uwaga: ważna jest spacja po “2” aby odróżnić “.^” od “2.”

A .’              - transponowanie bez sprzęgania.

Operacje porównań

A < B              - porównuje pary elementów macierzy A i macierzy B (tych samych wymiarów) dając w wyniku macierz  0-1 (0 – fałsz, 1 – prawda ). Można dokonywać porównań przy użyciu operatorów: <=, >, >=, ==, ~=, (~ - not).

Przykład: eliminacja z wektora X elementów przekraczających trzykrotne odchylenie standardowe:

              X = X(X <= 3*std(X))

(patrz również usuwanie wektorów zero-jedynkowych).

Operacje logiczne

Do dyspozycji mamy trzy operatory logiczne:

& - and, | - or, ~ - not.

Działając na kolejnych parach elementów macierzy A oraz B zwracają macierz zero-jedynkową będącą wynikiem danej operacji logicznej (jako TRUE traktowana jest każda liczba różna od zera).

Przykłady:

A | (~A)              - macierz “jedynek”

A &(~A)              - macierz “zer”.

Teksty

Instrukcja

              s = ‘Hello’

daje w wyniku wektor-wiersz s pamiętany jako kody ASCII poszczególnych liter. Jest traktowany jako normalny wektor, z tym że podczas wyświetlania instrukcją disp pokazują się litery zamiast liczb. Z każdą zmienna związany jest bowiem indeks mówiący, czy ma być wyświetlana jako tekst czy liczba.

t = abs(s) powoduje zmianę indeksu w ten sposób, że wektor t będzie wyświetlany jako liczby (kody ASCII).

t = setstr(t) zamienia indeks z powrotem na tekstowy.

isstr(t) = 1 jeśli t jest tekstem, 0 w przeciwnym przypadku.

t = num2str(x) zamienia skalar x na jego tekstową reprezentację, ok. 4 cyfry po przecinku, wygodne do etykietowania osi.

t = sprintf(‘format’, x, y, z) – bezpośrednia kontrola nad formatem wyjściowym tekstu t. Specyfikatory formatu: %d %e, %f, %g. Działa podobnie...

Zgłoś jeśli naruszono regulamin