znaki | Objaśnienie |
[ ] | w nawiasach prostokątnych umieszcza się wartości elementów macierzy |
{ } | nawiasy klamrowe są używane przy definiowaniu tzw. macierzy komórkowych |
( ) | nawiasy okrągłe używamy w wyrażeniach oraz dla wskaźników macierzy i argumentów funkcji |
: | dwukropek ma kilka znaczeń:1) w wyrażeniu złożonym z trzech elementów połączonych dwoma dwukropkami na przykład: 5:2:13 oznacza: "ciąg od 5 z przyrostem 2 do 13"2) w wyrażeniu złożonym z dwu elementów połączonych dwukropkiem: 5:10 oznacza: "ciąg od 5 do 10 domyślnie z przyrostem 1"3) samodzielny dwukropek zamiast wskaźnika lub wskaźników macierzy zastępuje wszystkie wartości wskaźnika lub wskaźników na przykład jeśli macierz A ma wymiary 3x5 to zamiast pisać i=1:3; j=1:5; A(i,j) można napisać:A(:,:) lub A(:) |
= | przypisuje zmiennej wartość wyrażenia n.p.: x=2*sin(pi/6) |
. | kropka poprzedza część ułamkową liczby (lub nazwę pola rekordu) |
, | przecinek rozdziela indeksy, argumenty funkcji lub poszczególne instrukcje (zamiast zmiany linii) |
; | dajemy po instrukcjach jeśli nie chcemy wyświetlania wyników ich realizacjiw przeciwnym przypadku kończymy instrukcje zmianą linii lub przecinkiem. |
% | znak procentu poprzedza komentarze w programach (m-plikach) |
nazwa_wektora = pierwszy element : przyrost lub ubytek : ostatni element |
Jeśli przyrost ma być równy 1 to można go pominąć w zapisie np.:
i = 1:6
i =
1 2 3 4 5 6
Wektory i macierze mogą być wprowadzane przez:
Wprowadzanie macierzy:
Aby wpisać macierz w oknie komend należy przecinkiem oddzielać elementy wiersza a średnikiem oddzielać wiersze, np.:
>> A = [1, 2, 3; 7, 8, 9]
daje:
A =
1 2 3
7 8 9
ad.2)
Generowanie wektorów i macierzy
Wektor można wygenerować jako postęp arytmetyczny (patrz wyżej)
Do generowania pewnych macierzy można stosować funkcje:
ad 3) Wczytywanie macierzy z pliku
Załóżmy, że mamy plik tekstowy o nazwie DANE1.TXT a w nim są dwie linie i w każdej po 4 liczby oddzielane odstępami:
2 4 6 8
3 6 9 12
Aby wczytać te liczby do macierzy można napisać następujące instrukcje:
[plik1 info] = fopen('DANE1.TXT'); A = fscanf(plik1, '%f %f %f %f', [4, 2]) close(plik1) |
Rozmiary czyli liczbę wierszy i kolumn macierzy można sprawdzić funkcją size:
[Liczba_wierszy Liczba_kolumn] = size(Macierz)
Długość wektora (czyli liczbę jego składowych) można sprawdzić funkcją length(wektor).
3.3.1. Transponowanie
- to operacja polegająca na zamianie wierszy macierzy na kolumny. Operatorem transponowania jest w Matlabie apostrof ['].
Przykładowo jeśli:
A =
2 3
4 6
6 9
8 12
to macierz transponowana:
A' =
2 4 6 8
3 6 9 12
3.3.2. Suma i różnica
Dla sumowania oraz odejmowania macierze muszą mieć jednakowe wymiary, sumowane są elementy o tych numerach.
A=[4, 2, 3; 3, 6, 1 ], B=[5, 3, 8; 4, 1, 2]
A =
4 2 3
3 6 1
B =
5 3 8
4 1 2
C=A+B
C =
9 5 11
7 7 3
3.3.3. Mnożenie macierzy lub ich elementów
Rozróżniane jest mnożenie macierzowe (*) oraz tablicowe (.*)
W mnożeniu macierzowym każdy element macierzy wynikowej powstaje przez pomnożenie odpowiedniego wiersza pierwszej macierzy przez kolumnę drugiej i zsumowaniu iloczynów par wyrazów. Wynika z tego warunek aby liczba elementów wiersza macierzy pierwszej była równa liczbie elementów w kolumnie macierzy drugiej. Dletego dla naszych macierzy A i B zostanie zasygnalizowany błąd:
>> A*B
??? Error using ==> *
Inner matrix dimensions must agree.
Natomiast wykonalne będzie to działanie gdy macierz B transponujemy:
>> A*B'
ans =
50 24
41 20
Bez transponowania można wykonać tak zwane mnożenie tablicowe (operator: kropka i gwiazdka). W tym mnożeniu element macierzy wynikowej C(w,k) jest po prostu iloczynem pary elementów A(w,k)*B(w,k). Na przykład:
>> A.*B
ans =
20 6 24
12 6 2
X=A\B |