Tutorial_MATLAB_01.pdf

(130 KB) Pobierz
Laboratorium POK
Materiały do Laboratorium Informatyki
Rok akademicki: 2006/07
Semestr: letni
MATLAB – cz. 1
MATLAB jest językiem programowania, w którym zasadniczo występuje jeden typ danej
liczbowej, a jest to macierz liczb zespolonych (szczególnym przypadkiem takiej macierzy jest
liczba rzeczywista lub naturalna) w związku z tym nie deklarujemy rodzaju zmiennych.
Dodatkowo możemy posługiwać się tablicami znaków „string”, którym jednak poświęcimy
tutaj mało uwagi. MATLAB ukierunkowany jest na wykonywanie obliczeń i ich wygodną
prezentację graficzną. Istnieje wiele bibliotek pozwalających na bardzo złożone obliczenia,
które nie będą tutaj również omawiane.
Korzystanie z MATLAB’a może odbywać się na dwa sposoby:
1. Z wiersza poleceń – kolejne polecenia są wpisywane, zatwierdzane klawiszem Enter i
od razy wykonywane
2. Z wykorzystaniem skryptów (m-plików – plików z rozszerzeniem „m”) – w tym
przypadku ciąg instrukcji zapisywany jest w pliku tekstowym i wywoływany z
wiersza poleceń poprzez wpisanie nazwy tego pliku.
Wybrane operacje na macierzach
W związku z tym, że MATLAB jest ukierunkowany na operacje macierzowe posiada bardzo
wiele funkcji operujących na macierzach. Wszystkie operacje podstawowe operują na
macierzach
Definiowanie macierzy (zawsze w nawiasach prostokątnych)
A=[1 2 4.5 6; 2 5 3 7]
średnik oznacza koniec wiersza, spacja rozdziela liczby w wierszu
B=[1 3; 4 5; 10 5; 3 6]
C=[1 2 3 …
5 6 7]
trzy kropki oznaczają kontynuację w następnym wierszu
D=[ 1 3 5
2 4 7]
brak kropek jest traktowane jako koniec wiersza macierzy
E=[1:5;1:2:10]
generuje macierz, w której pierwszy wiersz zawiera kolejne liczby od 1 do 5
(domyślny krok wynosi 1) a drugi wiersz zawiera liczby od 1 do 10 z krokiem 2 (krok
może być ułamkiem)
F=eye(3) - definiowanie macierzy jednostkowej (oczywiście wymiar 3x3)
Opracowali: dr inż. Krzysztof Stebel, dr inż. Witold Nocoń
Materiały do Laboratorium Informatyki
Rok akademicki: 2006/07
Semestr: letni
G=ones(4) - definiowanie macierzy jedynkowej (oczywiście wymiar 4x4)
H= linspace(0, 2,11) - generuje 11 równomiernie rozmieszczonych liczb w zakresie
od 0 do 2
Odwoływanie się do podmacierzy
B=A(i,j) - elementy w i-tym wierszu i j-tej kolumnie
C=A(:,j) - oznacza odwołanie się do j-tej kolumny
D=A(i,:) - oznacza odwołanie się do i-tego wiersza
E=A(a:b,c:d) - oznacza odwołanie do podmacierzy zawartej w wierszach od a do b i
kolumnach od c do d
Funkcją przydatną jest funkcja w=size(A) która zwraca ilość wierszy i kolumn macierzy A
(w –wektor dwu elementowy lub [w1,w2]=size(A), w1 i w2 odpowiednio
ilość wierszy i kolumn)
Wybrane operatory macierzowe (wymiary macierzy dla poszczególnych operacji muszą
być zgodne z ogólnie znanymi zasadami z algebry)
C=A+B
- dodawanie macierzy
D=A-B
- odejmowanie macierzy
E=A+2
- dodanie do każdego elementu macierzy liczby
F=A*B
- mnożenie macierzy
G=A*2
- pomnożenie każdego elementu macierzy przez liczbę
H=A’
- transpozycja macierzy
I=A/B
- dzielenie macierzy
J=A^3
- potęgowanie macierzy (możliwe również wykładniki ułamkowe)
Uwaga występują również operatory tablicowe
C=A.*B - mnożenie tablicowe, kropka oznacza, że macierz wynikowa będzie zawierała
na odpowiednich pozycjach iloczyny odpowiadających elementów w macierzy
A i B
D=A./B - dzielenie tablicowe (elementy z A dzielone przez elementy z B)
E=A.\B - dzielenie tablicowe (elementy z B dzielone przez elementy z A)
F=A.^3
- potęgowanie tablicowe (każdego elementu tablicy osobno)
Tablice mogą być argumentami większości funkcji:
A= [linspace(0, 2,50); linspace(0, 5,50)]
B=sqrt(A) - zwraca tablicę pierwiastków
C=sin(A) - zwraca tablicę sinusów
Operacje logiczne (<,<=,>,>=,= =,~= and, or, not)
C=A & B - (równoważne „and(A, B)”) zwraca macierz, w której na odpowiednich
pozycjach wartość 1 oznacza, że na odpowiedniej pozycji elementy w macierzy A i B są
niezerowe.
Opracowali: dr inż. Krzysztof Stebel, dr inż. Witold Nocoń
Materiały do Laboratorium Informatyki
Rok akademicki: 2006/07
Semestr: letni
D=A | B - (równoważne „or(A, B)”) zwraca macierz, w której na odpowiednich
pozycjach wartość 1 oznacza, że na odpowiedniej pozycji elementy w macierzy A lub B
są niezerowe.
E~A - (równoważne „not(A)”
F=A<B - zwraca macierz, w której na odpowiednich pozycjach wartość 1 oznacza, że
na odpowiedniej pozycji elementy w macierzy A lub B spełniają podany warunek.
Przykłady stosowania
Usunięcie z macierzy elementów mniejszych niż 100:
x=x(x>100) - zwraca wynik w postaci wektora elementów spełniających ten warunek
Usunięcie liczb nieskończonych z macierzy:
D=D(isfinite(D)) - zwraca wynik w postaci wektora elementów skończonych
Wybór z macierzy tych kolumn, których trzeci wiersz ma element większy niż 2:
L=x(3,:)>2
x=x(:,L)
lub skrótowo x=x(:, x(3,:)>2)
Funkcje zaokrąglania
ceil
- zaokrąglenie w górę
floor
- zaokrąglenie w dół
fix
- zaokrąglenie ujemnych w górę a dodatnich w dół
round
- zaokrąglenie do najbliższej całkowitej
find(x) - zwraca indeksy niezerowych elementów macierzy
find(x warunek) - (np i=find(x<2) ) zwraca indeksy elementów macierzy
spełniających zadany warunek.
Tworzenie wykresów
Do tworzenia prostych (jednowymiarowych) wykresów służy funkcja plot .
Przykłady użycia:
plot(y) – rysuje na wykresie wartości wektora y, przyjmując wektor x (y=f(x)) jako [1 2 3 4]
plot(y,x) – rysuje na wykresie y=f(x)
plot(y,x,”*”) - rysuje wykres jak wyżej, używając znaku „*”.
Wpisując w wierszu poleceń instrukcję „help plot” można uzyskać dodatkową pomoc na
temat tworzenia wykresów.
Opracowali: dr inż. Krzysztof Stebel, dr inż. Witold Nocoń
Zgłoś jeśli naruszono regulamin