MatLab wprowadzenie

background image

MatLab - wprowadzenie

Marcin Kowalewski

1 Wprowadzenie do pracy w ±rodowisku MatLab

2

2 Liczby rzeczywiste i zespolone

3

3 Deniowanie i funkcje wspomagaj¡ce konstrukcje macierzy

4

3.1 Denicja przez wyliczenie elementów . . . . . . . . . . . . . . . . . . . . .

4

3.2 Denicja przez wygenerowanie elementów . . . . . . . . . . . . . . . . . . .

4

3.3 Denicja macierzy z wykorzystaniem innych macierzy . . . . . . . . . . . .

5

3.4 Funkcje pomagaj¡ce w budowaniu macierzy . . . . . . . . . . . . . . . . .

5

3.5 Odwoªania do elementów macierzy . . . . . . . . . . . . . . . . . . . . . .

6

3.6 Rozmiar i wy±wietlanie macierzy . . . . . . . . . . . . . . . . . . . . . . .

7

4 Dziaªania na macierzach

7

4.1 Operatory i wyra»enia tablicowe . . . . . . . . . . . . . . . . . . . . . . . .

7

5 Funkcje typu logicznego

9

1

background image

1 Wprowadzenie do pracy w ±rodowisku MatLab

MATLAB - jest pakietem obliczeniowym oraz uniwersalnym j¦zykiem programowa-

nia wysokiego poziomu rmy MathWorks, przeznaczonym do wykonywania oblicze«
naukowo - in»ynierskich. Sercem pakietu jest interpreter j¦zyka umo»liwiaj¡cy im-
plementacj¦ algorytmów numerycznych oraz biblioteki podstawowych dziaªa« na
macierzach. Podstawowym typem danych jest macierz, st¡d nazwa MATrix LAB-
oratory. Pakiet posiada obszerne biblioteki dodatkowych procedur umo»liwiaj¡ce
rozwi¡zywanie typowych problemów obliczeniowych. Prosta budowa okienkowa
uªatwia korzystanie z programu. MATLAB wraz z bibliotekami mimo prostoty j¦zyka,
jest narz¦dziem niezwykle rozbudowanym wykorzystuj¡cym szeroki zakres wiedzy
wspóªczesnej zwi¡zanej z technik¡ obliczeniow¡. Zawarto±¢ pakietu Matlab w peªni
potwierdza slogan reklamowy rmy MathWorks: »ycie jest zbyt krótkie by pisa¢ p¦tle
do...loop.

Praca w ±rodowisku j¦zyka MATLAB mo»e odbywa¢ si¦ w dwóch trybach: interak-

tywnym, który polega na wydawaniu polece«, które po zatwierdzeniu wykonywane s¡
przez interpreter oraz wsadowym polegaj¡cy na tworzeniu m-plików (skryptów), zaw-
ieraj¡cych wi¦ksz¡ liczb¦ instrukcji.
Podstawienie:
 a=3,14;
powoduje utworzenie zmiennej a o warto±ci 3.14.
‘rednik po poleceniu powoduje, »e warto±¢ b¦d¡ca wynikiem nie b¦dzie wy±wietlana na
ekranie. Polecenie
 b=sin(a)

b = 0.0016

oblicza warto±¢ funkcji sinus dla zmiennej a, a wynik zapisuje do zmiennej b i wy±wietla
na ekranie. Je»eli nie podamy nazwy zmiennej to wynik dziaªania zostanie umieszczany
w standardowej zmiennej ans, np.:
 sin(pi)

ans = 1.2246e-016

Utworzona zmienna jest pami¦tana od momentu utworzenia, a» do chwili jej usuni¦cia.

2

background image

Nazwy zmiennych i informacje o nich mo»na uzyska¢ wywoªuj¡c funkcje who i whos. Aby
usun¡¢ zmienn¡ z pami¦ci nale»y wyda¢ polecenie clear zmienna, polecenie
 clear
- usuwa wszystkie zmienne znajduj¡ce si¦ w pami¦ci. Aby zapisa¢ zmienne na dysku
wydajemy polecenie:
 save nazwapliku
(domy±lnie przyjmowane jest rozszerzenie .mat).
Wczytanie danych z pliku dyskowego:
 load nazwapliku
Mo»emy skorzysta¢ z podr¦cznej pomocy podaj¡cej opis funkcji:
 help nazwafunkcji
Zawarto±¢ aktualnego katalogu mo»na wy±wietli¢ u»ywaj¡c funkcji dir lub ls w zale»no±ci
od u»ywanego OS.
Do zmiany katalogu sªu»y polecenie:
 cd nazwakatalogu.

2

Liczby rzeczywiste i zespolone

Podstawowym typem dla elementów macierzy wykorzystywanym przez MATLAB s¡
liczby rzeczywiste. Maksymaln¡ i minimaln¡ warto±¢ liczby rzeczywistej dodatniej mo»na
pozna¢ za pomoc¡ funkcji realmax i realmin. Do okre±lenia sposobu, w jaki liczby
rzeczywiste s¡ przedstawione na ekranie sªu»y polecenie format typ, gdzie typ okre±la,
w jakiej postaci liczby rzeczywiste b¦d¡ wy±wietlane na ekranie (np. short, short e,
long, long e, hex, bank).

Przykªad: Przedstaw liczb¦ pi w ró»nej postaci u»ywaj¡c funkcji format.
 format short

pi ans = 3.1416

 format short e

pi ans = 3.1416e+000

 format long

3

background image

pi ans = 3.14159265358979

 format long e

pi ans = 3.141592653589793e+000

Liczby mo»na podawa¢ w jednej z postaci:
 a+b*i
 a+b*j
 a+b*sqrt(-1)

3 Deniowanie i funkcje wspomagaj¡ce konstrukcje

macierzy

3.1 Denicja przez wyliczenie elementów

 A=[1 2 3 4; 1 1 1 1];
lub:
 A=[1,2,3,4; 1,1,1,1]
lub:
 A=[1 2 3 4

1 1 1 1]

lub:
 A=[1,2...

3,4; 1,1,1,1]

A =

1 2 3 4

1 1 1 1

Poszczególne elementy macierzy oddziela si¦ spacjami lub przecinkami, a wiersze ±red-
nikami lub umieszcza si¦ je w oddzielnych liniach.

3.2 Denicja przez wygenerowanie elementów

 A=[min:krok:max]
Polecenie generuje wektor zaczynaj¡c od warto±ci min, ko«cz¡c na elemencie o warto±ci
max z krokiem krok. Je»eli parametr krok zostanie pomini¦ty, to krok = 1.

4

background image

Poni»szy przykªad wygeneruje macierz trzywierszow¡ o wyrazach od 1 do 10 w pierwszym
wierszu i o wyrazach od 2 do 20 w wierszu drugim i od 3 do 30 w trzecim.
 A=[1:10; 2:2:20; 3:3:30]

A =

1 2 3

4

5

6

7

8

9

10

2 4 6

8

10 12 14 16 18 20

3 6 9 12 15 18 21 24 27 30

3.3 Denicja macierzy z wykorzystaniem innych macierzy

Zdeniujmy macierze A, B i C nast¦puj¡co:
 A=[1 2 3; 3 2 1];
 B=[4 5; 0 -1];
 C=[1 2 3 4 5; 1 1 1 1 1];
 D=[A B; C]

A =

1 2 3 4

5

3 2 1 0 1

1 2 3 4

5

1 1 1 1

1

Nale»y pami¦ta¢ o zgodno±ci wymiarów.

Powy»sze funkcje konstrukcji macierzy mo»na ª¡czy¢, np.

 A=[1 2 3; 3 2 1];
i deniujemy macierz
 D=[2:2:8; [0; 4], A]

D =

2 4 6 8

0 1 2 3

4 3 2 1

3.4 Funkcje pomagaj¡ce w budowaniu macierzy

5

background image

Funkcja

Opis

eye(n), eye(m,n)

macierz jednostkowa o n × n lub
n × m

wymiarze

ones(n), ones(m,n)

macierz skªadaj¡ca si¦ z samych jedynek

zeros(n), zeros(m,n)

macierz skªadaj¡ca si¦ z samych zer

rand(n), rand(m,n)

wypeªnia macierz liczbami pseudolosowymi
o rozkªadzie jednostajnym na [0, 1]

randn(n), randn(m,n)

jak wy»ej tylko rozklad ma EX = 0 oraz V = 1

linspace(x

1

, x

2

), linspace(x

1

, x

2

, n

)

generuje wektor wierszowy 100 (n) liczb
równomiernie rozmieszczonych pomi¦dzy
liczbami x

1

a x

2

longspace(x

1

, x

2

), longspace(x

1

, x

2

, n

) generuje wektor wierszowy 50 (n) liczb

równomiernie rozmieszczonych pomi¦dzy
liczbami 10

x

1

a 10

x

2

3.5 Odwoªania do elementów macierzy

Niech
 A=[1 2 3 4 5 6; 6 5 4 3 2 1; 1 1 2 2 3 3]

A =

1 2 3 4 5 6

6 5 4 3 2 1

1 1 2 2 3 3

Polecenie A(i,j) zwraca element macierzy A stoj¡cy w i-tym wierszu i w j-tej kolumnie,
np.  A(2,3)

ans = 4

Polecenie  A(1:3, 2:4) zwróci macierz

ans =

2 3 4

5 4 3

1 2 2

a zatem zakres wierszy od 1 do 3 oraz zakres kolumn od 2 do 4.
Polecenie A(3, :) lub A(3, 1:6) zwróci nam caªy trzeci wiersz.

6

background image

Polecenie A(:,[3 6]) zwróci nam kolumny trzeci¡ i szóst¡.
Polecenie A(:,[1:3 6]) zwróci nam kolumny od 1 do 3 i szóst¡.
Polecenie A([2 3], 2:2:6) zwróci nam macierz powstaª¡ z przeci¦cia wierszy 2 i 3 oraz
kolumn 2, 4, 6.

Polecenie A(:, 6) = [ ] usunie z macierzy A szóst¡ kolumn¦ (podstawi za t¦ kolumn¦

kolumn¦ pust¡).

3.6 Rozmiar i wy±wietlanie macierzy

Polecenie disp(A) wysyªa zawarto±¢ macierzy naekran bez wypisywania nazwy zmiennej.
Polecenie [n,m] = size(A) zwraca liczb¦ wierszy n oraz kolumn m macierzy A.
Polecenia n = size(A,1) oraz m = size(A,2) zwracaj¡ odpowiednio liczb¦ wierszy n
oraz liczbe kolumn m macierzy A.
Polecenie n = length(X) zwraca dªugo±¢ wektora X, je»eli X jest macierz¡, to zwracany
jest dªu»szy z jej wymiarów.

4 Dziaªania na macierzach

Dziaªa« na macierzach dokonujemy za pomoc¡ operatorów +, -, *, dodawanie, odej-
mowanie, mno»enie, odpowiednio. Musimy tylko pami¦ta¢ o pewnych zasadach:
Przy dodawaniu i odejmowaniu musi si¦ zgadza¢ liczba wierszy i kolumn, tzn.
[A]

n×m

± [B]

n×m

= [C]

n×m

Przy mno»eniu musimy pami¦ta¢ aby liczba kolumn pierwszej macierzy byªa równa
liczbie wierszy macierzy drugiej, tzn.
[A]

n×m

[B]

m×k

= [C]

n×k

Transpozycji macierzy A dokonujemy poleceniem A'.
Macierz odwrotn¡ do macierzy A, gdzie det(A) 6= 0 uzyskamy poleceniem A (-1).

4.1 Operatory i wyra»enia tablicowe

Ka»da macierz jest tablic¡ przechowuj¡c¡ liczby. MAtLab udostepnia operatory wykonu-
j¡ce operacje na ka»dym elemencie tablicy z osobna. S¡ to operatory tablicowe.

7

background image

Dziaªania
Je±li chodzi o dodawanie nie ma tu »adnej ró»nicy.
Operator .* oznacza mno»enie dwóch macierzy o tych samych wymiarach.

[a

ij

]

n×m

. ∗ [b

ij

]

n×m

= [a

ij

b

ij

]

n×m

gdzie i = 1, 2, . . . , n oraz j = 1, 2, . . . , m.
Operator ./ oznacza dzielenie element po elemencie dwóch macierzy o tych samych wymi-
arach.

[a

ij

]

n×m

./[b

ij

]

n×m

= [a

ij

/b

ij

]

n×m

gdzie i = 1, 2, . . . , n oraz j = 1, 2, . . . , m.
Aby pomno»y¢ wszystkie elementy macierzy A przez liczb¦ r wykonujemy polecenie
 r*A
Podobnie mo»emy dzieli¢ elementy macierzy A przez dowoln¡ liczb¦ r 6= 0.
Operator . umo»liwia podniesienie ka»dego elementu danej macierzy do dowolnej pot¦gi,
np.
 2.3

ans = 8

Funkcje

Funkcja

Opis

sqrt(X)

pierwiastki kwadratowe elementów macierzy X

sin(X) cos(X) tan(X)

funkcje trygonometryczne

asin(X) acos(X) atan(X)

funkcje cyklometryczne

sinh(X) cosh(X) tanh(X)

funkcje hiperboliczne

asinh(X) acosh(X) atanh(X) funkcje odwrotne do hiperbolicznych

8

background image

Funkcja

Opis

sqrt(X)

pierwiastki kwadratowe

exp(X)

macierz o elementach e

x

ij

pow2(X)

pot¦gi liczby 2

log(X)

logarytm naturalny elementów macierzy X

log2(X)

logarytm o podstawie 2

log10(X)

logarytm dziesi¦tny

abs(Z)

moduªy liczb zespolonych

real(Z)

cz¦±ci rzeczywiste

angle(Z)

argumenty elementów macierzy Z

imag(Z)

cz¦±ci urojone

conj(Z)

macierz sprz¦»ona do Z

ceil(X)

zaokr¡glenie elementów w gór¦

floor(X)

zaokr¡glenie elementów w dóª

fix(X)

zaokr¡gla elementy dodatnie z dóª, ujemne w gór¦

round(X)

zaokr¡glenie do najbli»szej liczby caªkowitej

sign(X)

tworzy macierz zast¦puj¡c elementy dodatnie 1
elementy ujemne -1 oraz równe zero 0

rem(X, Y) reszta z dzielenia odpowiadaj¡cym sobie

elementów macierzy X i Y

gcd(a,b)

NWD(a,b)

lcm(a,b)

NWW(a,b)

5 Funkcje typu logicznego

W MatLabie logiczna prawda odpowiada macierzy zawieraj¡cej wyª¡cznie elementy nieze-
rowe, natomiast logiczny faªsz odpowiada macierzy pustej lub zawieraj¡cej co najmniej
jedno zero.

9

background image

Wyra»enie (operator) Relacja (funkcja)

x == y

x równe y

x = y

x ró»ne y

x < y

x mniejsze y

x > y

x wi¦ksze y

x <= y

x mniejsze równe y

x >= y

x wi¦ksze równe y

x | y

alternatywa: 1 - tam gdzie conajmniej jeden
z operatorów jest ró»ny od zera

x & y

koniunkcja: 1 - tam gdzie oba
operatory s¡ niezerowe

xor(x,y)

ró»nica symetryczna: 1 - tam gdzie jeden
z operatorów jest ró»ny od zera, ale nie oba naraz

x

negacja

Przykªad:
Dla A = [1 4 8] i B = [2 4 6], operacja
 A < B
zwróci wynik [1 0 0].
Dla A = [1 0 8] i B = [2 0 0], operacja
 A | B
zwróci wynik [1 0 1], natomiast operacja
 xor(A,B)
zwróci wynik [0 0 1].

Funkcja

Dziaªanie

exist('nazwa') zwraca 1 gdy macierz 'nazwa' istnieje
isempty(X)

zwraca 1 gdy X jest macierz¡ pust¡

issparse(X)

zwraca 1 gdy X jest macierz¡ rzadk¡

isstr(X)

zwraca 1 gdy X jest ªa«cuchem tekstowym

isglobal

zwraca 1 gdy X jest zmienn¡ globaln¡

10

background image

any(X)

je±li X jest wektorem, zwraca 1 gdy którykolwiek z elementów
jest niezerowy je±li X jest macierz¡ traktuje macierz jako
wektor kolumn i tworzy wektor zawieraj¡cy 1 gdy którykolwiek
z elementów kolumny jest niezerowy

all(X)

podobnie jak wy»ej, tylko zwraca 1 gdy wszystkie
elementy s¡ niezerowe

I = find(X)

zwraca indeksy niezerowych elementów macierzy X
w pierwszym wypadku zwraca indeksy wektora

[I,J] = find(X)

jak poprzednio zwraca indeksy wierszy i kolumn dla których
elementy s¡ niezerowe

[I,J,V] = find(X) tak jak poprzednio, tylko dodatkowo jest zwracany wektor V

zawieraj¡cy elementy macierzy X o wspóªrz¦dnych
podanych w wektorach I i J

isnan(X)

zwraca macierz zawieraj¡c¡ 1 tam, gdzie
gdzie odpowiadaj¡ce elementy maj¡ warto±¢ NaN,
(nie liczb¦)

isinf(X)

zwraca macierz zawieraj¡c¡ 1 tam, gdzie
gdzie odpowiadaj¡ce elementy maj¡ warto±¢ -inf lub +inf,
(−∞ lub +)

finite(X)

zwraca macierz zawieraj¡c¡ 1 tam, gdzie
gdzie odpowiadaj¡ce elementy maj¡ warto±¢ sko«czon¡

11


Wyszukiwarka

Podobne podstrony:
Pakiet Matlab wprowadzenie w środowisko
matlab wprowadzenie
1 MATLAB Wprowadzenie
Matlab wprowadzenie
MATLAB - Wprowadzenie do Matlaba, Studia, Sprawozdania, Metody numeryczne
MATLAB wprowadzenie
MATLAB wprowadzenie
matlab wprowadzenie
Pakiet Matlab wprowadzenie w środowisko
matlab wprowadzenie
MATLAB Wprowadzenie
Matlab T Twardowski ,,Wprowadzenie Do Matlaba Na Przykładach''
Automatyka- Wprowadzenie do programu Matlab
AiR spr wprowadzenie do matlab, MathLab, Matlab

więcej podobnych podstron