MATLAB Prezentacja 2


MATLAB
PODSTAWY PROGRAMOWANIA
Ćwiczenia 2
DZIAAANIA
NA WEKTORACH I MACIERZACH
Wydział Inżynierii Lądowej i Środowiska
Katedra Mechaniki Budowli i Mostów
copyleft by Marcin Kujawa & Aukasz Smakosz
Tworzenie skryptów
·ð Skrypt jest plikiem tekstowym zawierajÄ…cym zestaw poleceÅ„ Matlaba.
·ð Pliki skryptowe majÄ… rozszerzenie .m.
·ð W ich nazwach nie należy używać polskich znaków oraz spacji, nie mogÄ…
rozpoczynać się liczbą, nie mogą pokrywać się z nazwami funkcji Matlaba
·ð DostÄ™p do edytora Matlaba jest możliwy przez File > New > Script, przez
odpowiednią ikonę lub skrót CTRL+N.
Opisywanie skryptów
·ð Każdy skrypt powinien mieć krótki opis zawartoÅ›ci i dziaÅ‚ania. Opis umieszcza siÄ™
za znakiem %. Taki opis pliku nazywamy komentarzem.
·ð Opis pliku można wywoÅ‚ać w Matlabie przy pomocy polecenia help
nazwa_skryptu. Za opis pliku traktowane sÄ… pierwsze linie komentarza
nieprzerwane liniami innego typu.
Przykład:
% To jest opis skryptu test.m
clear, clc % czyszczenie zmiennych i ekranu
a=2; % opis wybranej komendy
MATLAB ·ð 2. DziaÅ‚ania na wektorach i macierzach ·ð 2013/2014
2/25
Marcin Kujawa ·ð Aukasz Smakosz ·ð Politechnika GdaÅ„ska ·ð WILiÅš ·ð Katedra Mechaniki Budowli i Mostów
Dostęp do elementów macierzy
Polecenie: A(:,j)
wybiera j-tÄ… kolumnÄ™ z macierzy A.
j
Polecenie: A(i,:)
i
wybiera i-ty wiersz z macierzy A.
Polecenie: A(i,a:b)
a b
i
wybiera elementy od a do b z macierzy A z wiersza i.
Polecenie: A(:)
wybiera całą macierz w postaci wektora kolumnowego.
b
Polecenie: A(a:b)
a b
a
wybiera elementy macierzy A od elementu i do j.
MATLAB ·ð 2. DziaÅ‚ania na wektorach i macierzach ·ð 2013/2014
3/25
Marcin Kujawa ·ð Aukasz Smakosz ·ð Politechnika GdaÅ„ska ·ð WILiÅš ·ð Katedra Mechaniki Budowli i Mostów
Odwołania do podmacierzy
Przykład:
Stwórz macierz A i zapisz zaznaczone podmacierze jako B i C.
Odczytaj wyróżnione elementy i zapisz je jako b i c.
3 7 11
9 5 1
1 23 4 5 6
clear, clc
A=[-9:4:11; 1:6] % definicja macierzy A
B=A(1:2,[2 3]) % podmacierz z wierszy od 1 do 2 oraz kolumn 2 i 3
C=A(1,4:6) % podmacierz z wiersza 1 oraz kolumn od 4 do 6
b=B(2,1) % element znajdujÄ…cy siÄ™ w 2 wierszu i 1 kolumnie
c=C(1,2) % element znajdujÄ…cy siÄ™ w 1 wierszu i 2 kolumnie
MATLAB ·ð 2. DziaÅ‚ania na wektorach i macierzach ·ð 2013/2014
4/25
Marcin Kujawa ·ð Aukasz Smakosz ·ð Politechnika GdaÅ„ska ·ð WILiÅš ·ð Katedra Mechaniki Budowli i Mostów
Usuwanie wektora z macierzy i nadpisywanie elementów
Przykład:
Stwórz macierz A, wyróżnione elementy zastÄ…p liczbÄ… a = sin(15°), nastÄ™pnie
usuń z niej zaznaczone wektory.
1 0 0

0 1 0
0 0 1
clear, clc
A=eye(3) % generacja macierzy jednostkowej A
a=sin(pi/12) % definicja zmiennej a; kat w radianach
A(3,1)=a % nadpisanie elementu w 3 wierszu i 1 kolumnie
A(2,3)=a % nadpisanie elementu w 2 wierszu i 3 kolumnie
A(1,:)=[] % usuniecie 1 wiersza
A(:,2)=[] % usuniecie 2 kolumny
MATLAB ·ð 2. DziaÅ‚ania na wektorach i macierzach ·ð 2013/2014
5/25
Marcin Kujawa ·ð Aukasz Smakosz ·ð Politechnika GdaÅ„ska ·ð WILiÅš ·ð Katedra Mechaniki Budowli i Mostów
Generacja wektorów i alokacja pamięci
Ze względu na czas wykonywania operacji dobrze jest przed przystąpieniem do
obliczeń stworzyć odpowiednie macierze do przechowywania danych.
Polecenie:
x(5)=0
wygeneruje wektor poziomy 5 elementowy wypełniony zerami.
Polecenie:
x(5,7)=0
lub
x=zeros(5,7)
wygeneruje macierz 5x7 wypełniona zerami.
MATLAB ·ð 2. DziaÅ‚ania na wektorach i macierzach ·ð 2013/2014
6/25
Marcin Kujawa ·ð Aukasz Smakosz ·ð Politechnika GdaÅ„ska ·ð WILiÅš ·ð Katedra Mechaniki Budowli i Mostów
ZADANIE DO WYKONANIA NA ZAJCIACH
Wygeneruj zerowÄ… macierz A o wymiarach 3 × 5, nastÄ™pnie kolejne jej wiersze
zastÄ…p wektorami x, y i z:


1 3 5 7 9


4 2 0 2 4


1 1 1 1 1
Usuń skrajne kolumny i zapisz wyraz znajdujący się na środku macierzy jako c.
MATLAB ·ð 2. DziaÅ‚ania na wektorach i macierzach ·ð 2013/2014
7/25
Marcin Kujawa ·ð Aukasz Smakosz ·ð Politechnika GdaÅ„ska ·ð WILiÅš ·ð Katedra Mechaniki Budowli i Mostów
ZADANIE DO WYKONANIA NA ZAJCIACH
clear, clc
% generacja macierzy zerowej i wektorow x, y, z
A=zeros(3,5);
x=[1:2:9];
y=[-4:2:4];
z=ones(1,5);
A(1,:)=x % zastÄ…pienie wiersza 1 wektorem x
A(2,:)=y % zastÄ…pienie wiersza 2 wektorem y
A(3,:)=z % zastÄ…pienie wiersza 3 wektorem z
A(:,[1 5])=[] % usuniecie 1 i 5 kolumny
c=A(2,2) % odczytanie wyrazu z 2 wiersza i 2 kolumny
MATLAB ·ð 2. DziaÅ‚ania na wektorach i macierzach ·ð 2013/2014
8/25
Marcin Kujawa ·ð Aukasz Smakosz ·ð Politechnika GdaÅ„ska ·ð WILiÅš ·ð Katedra Mechaniki Budowli i Mostów
Operacje na elementach wektora
Jeżeli x jest macierzą to operacje odnoszą się do poszczególnych kolumn
macierzy.
Inne przydatne funkcje
MATLAB ·ð 2. DziaÅ‚ania na wektorach i macierzach ·ð 2013/2014
9/25
Marcin Kujawa ·ð Aukasz Smakosz ·ð Politechnika GdaÅ„ska ·ð WILiÅš ·ð Katedra Mechaniki Budowli i Mostów
ZADANIE DO WYKONANIA NA ZAJCIACH
Stwórz macierz B taką, że:
·ð skok we wszystkich wierszach wynosi 3,
·ð pierwszy wiersz zaczyna siÄ™ od 1 i koÅ„czy na 7,
·ð pierwsza kolumna zaczyna siÄ™ od 1 i koÅ„czy na 9 ze skokiem co 2.
MATLAB ·ð 2. DziaÅ‚ania na wektorach i macierzach ·ð 2013/2014
10/25
Marcin Kujawa ·ð Aukasz Smakosz ·ð Politechnika GdaÅ„ska ·ð WILiÅš ·ð Katedra Mechaniki Budowli i Mostów
ZADANIE DO WYKONANIA NA ZAJCIACH
Stwórz macierz B taką, że:
·ð skok we wszystkich wierszach wynosi 3,
·ð pierwszy wiersz zaczyna siÄ™ od 1 i koÅ„czy na 7,
·ð pierwsza kolumna zaczyna siÄ™ od 1 i koÅ„czy na 9 ze skokiem co 2.
B=[1:3:7; 3:3:9; 5:3:11; 7:3:13; 9:3:15]
MATLAB ·ð 2. DziaÅ‚ania na wektorach i macierzach ·ð 2013/2014
11/25
Marcin Kujawa ·ð Aukasz Smakosz ·ð Politechnika GdaÅ„ska ·ð WILiÅš ·ð Katedra Mechaniki Budowli i Mostów
Przykład:
·ð Wyznacz Å›redniÄ… arytmetycznÄ… ze wszystkich elementów macierzy B.
·ð Odczytaj wymiary macierzy B za pomocÄ… funkcji size i przypisz je kolejno
zmiennym m i n.
·ð Wyznacz maksymalnÄ… wartość m-tego wiersza i minimalnÄ… wartość n-tej
kolumny macierzy B.
b1=mean(B) % wektor srednich z kolumn mac. B
b2=mean(b1) % srednia arytmetyczna z mac. B
[m,n]=size(B); % odczytanie wymiarow B i przypisanie
ich wartosci zmiennym m (l.wierszy) oraz n(l.kolumn)
m1=B(m,:) % zapisanie ostatniego wiersza jako m1
m2=max (m1) % max m-tego wiersza
n1=B(:,n) % zapisanie ostatniej kolumny jako n1
n2=min(n1) % min n-tej kolumny
MATLAB ·ð 2. DziaÅ‚ania na wektorach i macierzach ·ð 2013/2014
12/25
Marcin Kujawa ·ð Aukasz Smakosz ·ð Politechnika GdaÅ„ska ·ð WILiÅš ·ð Katedra Mechaniki Budowli i Mostów
Działania macierzowe i tablicowe
Przykład:
Zdefiniuj macierz A i wektor x następnie podnieś je do drugiej potęgi
wykorzystując operacje tablicowe i macierzowe. Porównaj wyniki.
2 1 3
A=[2 -1 3;exp(2) 5 0;6 0 2*pi]

50
x=[-2:2]
60 2
at=A.^2, xt=x.^2 % op. tablicowe


2 1 0 1 2
am=A^2, xm=x^2 % op. macierzowe
MATLAB ·ð 2. DziaÅ‚ania na wektorach i macierzach ·ð 2013/2014
13/25
Marcin Kujawa ·ð Aukasz Smakosz ·ð Politechnika GdaÅ„ska ·ð WILiÅš ·ð Katedra Mechaniki Budowli i Mostów
A = x =
2.0000 -1.0000 3.0000 -2 -1 0 1 2
7.3891 5.0000 0
6.0000 0 6.2832
Potęgowanie tablicowe
at = xt =
4.0000 1.0000 9.0000 4 1 0 1 4
54.5982 25.0000 0
36.0000 0 39.4784
Każdy z elementów analizowanych macierzy został podniesiony do drugiej potęgi.
·ð Operacje tablicowe wykonywane sÄ… na odpowiadajÄ…cych sobie elementach
danych macierzy (tj. na komórkach o tych samych współrzędnych).
·ð Operacje tablicowe można przeprowadzać wyłącznie na macierzach o
jednakowych wymiarach.
·ð Symbolem operacji tablicowej jest kropka umieszczona przed znakiem
potęgowania lub mnożenia.
MATLAB ·ð 2. DziaÅ‚ania na wektorach i macierzach ·ð 2013/2014
14/25
Marcin Kujawa ·ð Aukasz Smakosz ·ð Politechnika GdaÅ„ska ·ð WILiÅš ·ð Katedra Mechaniki Budowli i Mostów
A = x =
2.0000 -1.0000 3.0000 -2 -1 0 1 2
7.3891 5.0000 0
6.0000 0 6.2832
Potęgowanie macierzowe
am = xm =
14.6109 -7.0000 24.8496 niemożliwe
51.7234 17.6109 22.1672
49.6991 -6.0000 57.4784
Potęgowanie macierzowe A^2 jest jednoznaczne z operacją mnożenia macierzowego
A*A. Operacja x^2 była niemożliwa do realizacji, gdyż nie da się wykonać mnożenia
macierzowego x*x (wymiary mnożonych macierzy nie są zgodne).
·ð Operacje mnożenia i potÄ™gowania macierzowego przebiegajÄ… wg
charakterystycznego schematu i wymagają, żeby liczba kolumn pierwszego
składnika iloczynu była równa liczbie wierszy drugiego składnika.
MATLAB ·ð 2. DziaÅ‚ania na wektorach i macierzach ·ð 2013/2014
15/25
Marcin Kujawa ·ð Aukasz Smakosz ·ð Politechnika GdaÅ„ska ·ð WILiÅš ·ð Katedra Mechaniki Budowli i Mostów
ZADANIE DO WYKONANIA NA ZAJCIACH
·ð Zdefiniuj macierze A i B, nastÄ™pnie oblicz ich sumÄ™ i różnicÄ™.
·ð Dodaj do elementów 1. wiersza macierzy B liczbÄ™ 2.
·ð Wykonaj mnożenie macierzy A i B (wybierz typ mnożenia).
2 3 4 , 5 5 5
4 3 2 5 5 5
MATLAB ·ð 2. DziaÅ‚ania na wektorach i macierzach ·ð 2013/2014
16/25
Marcin Kujawa ·ð Aukasz Smakosz ·ð Politechnika GdaÅ„ska ·ð WILiÅš ·ð Katedra Mechaniki Budowli i Mostów
ZADANIE DO WYKONANIA NA ZAJCIACH
·ð Zdefiniuj macierze A i B, nastÄ™pnie oblicz ich sumÄ™ i różnicÄ™.
·ð Dodaj do elementów 1. wiersza macierzy B liczbÄ™ 2.
·ð Wykonaj mnożenie macierzy A i B (wybierz typ mnożenia).
2 3 4 , 5 5 5
4 3 2 5 5 5
clear, clc
A=[2:4;4:-1:2] % generacja automatyczna
B=ones(2,3)*5 % mnozenie mac. przez skalar
sum=A+B, roz=A-B % suma i roznica mac. A i B
B(1,:)=B(1,:)+2 % dodanie 2 do 1 wiersza mac. B
mn=A.*B % mozliwe tylko mn. tabl.
MATLAB ·ð 2. DziaÅ‚ania na wektorach i macierzach ·ð 2013/2014
17/25
Marcin Kujawa ·ð Aukasz Smakosz ·ð Politechnika GdaÅ„ska ·ð WILiÅš ·ð Katedra Mechaniki Budowli i Mostów
ZADANIE DO WYKONANIA NA ZAJCIACH
·ð Zbuduj wektor x, którego elementy rozpoczynajÄ… siÄ™ od -5 i koÅ„czÄ… na 5 ze
skokiem co 0.1.
·ð Stwórz wektor y, bÄ™dÄ…cy zbiorem wartoÅ›ci funkcji y=x2*sin(x),
odpowiadajÄ…cych elementom wektora x.
·ð Stwórz macierz F, której wierszami sÄ… kolejno wektory x i y.
MATLAB ·ð 2. DziaÅ‚ania na wektorach i macierzach ·ð 2013/2014
18/25
Marcin Kujawa ·ð Aukasz Smakosz ·ð Politechnika GdaÅ„ska ·ð WILiÅš ·ð Katedra Mechaniki Budowli i Mostów
ZADANIE DO WYKONANIA NA ZAJCIACH
·ð Zbuduj wektor x, którego elementy rozpoczynajÄ… siÄ™ od -5 i koÅ„czÄ… na 5 ze
skokiem co 0.1.
·ð Stwórz wektor y, bÄ™dÄ…cy zbiorem wartoÅ›ci funkcji y=x2*sin(x),
odpowiadajÄ…cych elementom wektora x.
·ð Stwórz macierz F, której wierszami sÄ… kolejno wektory x i y.
clear, clc
x=[-2:0.1:2] % generacja wektora x
y=x.^2.*sin(x) % gen. wektora y, OPERACJE TABLICOWE
F=[x;y] % zlozenie macierzy F, x i y maja identyczne
wymiary
MATLAB ·ð 2. DziaÅ‚ania na wektorach i macierzach ·ð 2013/2014
19/25
Marcin Kujawa ·ð Aukasz Smakosz ·ð Politechnika GdaÅ„ska ·ð WILiÅš ·ð Katedra Mechaniki Budowli i Mostów
Odwracanie i transpozycja macierzy
Przykład:
Zdefiniuj macierze A i B, a następnie wyznacz macierze do nich odwrotne oraz
transponowane.
11 12 13 11 12 13
,
21 0 23 21 22 23
31 32 33 31 32 33
A=[11:13;21 0 23;31:33]
trans_a=A % transpozycja macierzy
odw_a=inv(A), odw_a= A^(-1) % odwracanie macierzy
B=[11:13;21:23;31:33]
trans_b=B % transpozycja macierzy
odw_b=inv(B) % odwracanie macierzy
MATLAB ·ð 2. DziaÅ‚ania na wektorach i macierzach ·ð 2013/2014
20/25
Marcin Kujawa ·ð Aukasz Smakosz ·ð Politechnika GdaÅ„ska ·ð WILiÅš ·ð Katedra Mechaniki Budowli i Mostów
ZADANIE DO WYKONANIA NA ZAJCIACH
Zdefiniuj wektory x i y, a następnie oblicz ich iloczyn tablicowy oraz wektorowy.
Oblicz sumę kwadratów elementów wektora y.


1 3 5 7 9


4 2 0 2 4
MATLAB ·ð 2. DziaÅ‚ania na wektorach i macierzach ·ð 2013/2014
21/25
Marcin Kujawa ·ð Aukasz Smakosz ·ð Politechnika GdaÅ„ska ·ð WILiÅš ·ð Katedra Mechaniki Budowli i Mostów
ZADANIE DO WYKONANIA NA ZAJCIACH
Zdefiniuj wektory x i y, a następnie oblicz ich iloczyn tablicowy oraz wektorowy.
Oblicz sumę kwadratów elementów wektora y.


1 3 5 7 9


4 2 0 2 4
clear, clc
x=[1:2:9]
y=[-6:3:6]
xy_tab=x.*y % mnozenie tablicowe
xy_mac=x*y % mnozenie mac 1x5 * 5x1
xy_mac2=x *y % mnozenie mac 5x1 * 1x5
y_kwd=y*y % suma kwadratow
MATLAB ·ð 2. DziaÅ‚ania na wektorach i macierzach ·ð 2013/2014
22/25
Marcin Kujawa ·ð Aukasz Smakosz ·ð Politechnika GdaÅ„ska ·ð WILiÅš ·ð Katedra Mechaniki Budowli i Mostów
Algebra liniowa
det(A)
obliczanie wyznacznika macierzy A
eig(A)
obliczanie wartości własnych macierzy A
obliczanie współczynników wielomianu charakterystycznego
poly(A)
macierzy A
rank(A)
obliczanie rzędu macierzy A
wyznaczanie elementów leżących na głównej przekątnej
diag(A)
macierzy A
Przykład:
Wykorzystaj powyższe funkcje na macierzy A postaci:
2 1 3

50
60 2
MATLAB ·ð 2. DziaÅ‚ania na wektorach i macierzach ·ð 2013/2014
23/25
Marcin Kujawa ·ð Aukasz Smakosz ·ð Politechnika GdaÅ„ska ·ð WILiÅš ·ð Katedra Mechaniki Budowli i Mostów
ZADANIE DO WYKONANIA NA ZAJCIACH
Rozwiąż układ równań liniowych:
3 1
1

1 3 3
2
2 2
Uwaga: układ można zapisać w postaci macierzowej A*x = B, którego
rozwiÄ…zaniem jest x = A-1*B
MATLAB ·ð 2. DziaÅ‚ania na wektorach i macierzach ·ð 2013/2014
24/25
Marcin Kujawa ·ð Aukasz Smakosz ·ð Politechnika GdaÅ„ska ·ð WILiÅš ·ð Katedra Mechaniki Budowli i Mostów
ZADANIE DO WYKONANIA NA ZAJCIACH
Rozwiąż układ równań liniowych:
3 1
1

1 3 3
2
2 2
Uwaga: układ można zapisać w postaci macierzowej A*x = B, którego
rozwiÄ…zaniem jest x = A-1*B
clear, clc
A=[1 3 0; 1/2 1 -3; 0 2 1] % macierz wspolczynnikow 3x3
B=[1 3 2]' % wektor kolumnowy wyrazow wolnych 3x1
x=inv(A)*B % wektor kolumnowy niewiadomych 3x3 * 3x1
MATLAB ·ð 2. DziaÅ‚ania na wektorach i macierzach ·ð 2013/2014
25/25
Marcin Kujawa ·ð Aukasz Smakosz ·ð Politechnika GdaÅ„ska ·ð WILiÅš ·ð Katedra Mechaniki Budowli i Mostów


Wyszukiwarka