Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Wykład 2 Matlab tablice MOiPP. TABLICE – gotowe operacje rachunku macierzowego wektory: M1= [1 2 3 4 5] %przypisanie tablicy wierszowej M2 = [1; 2; 1;

Podobne prezentacje


Prezentacja na temat: "Wykład 2 Matlab tablice MOiPP. TABLICE – gotowe operacje rachunku macierzowego wektory: M1= [1 2 3 4 5] %przypisanie tablicy wierszowej M2 = [1; 2; 1;"— Zapis prezentacji:

1 Wykład 2 Matlab tablice MOiPP

2 TABLICE – gotowe operacje rachunku macierzowego wektory: M1= [ ] %przypisanie tablicy wierszowej M2 = [1; 2; 1; 1; 0] %tworzenie tablicy kolumnowej tablica dwuwymiarowa: M3= [1 2 3; ; ] albo M3= [1, 2, 3; 4.5, 5, 6; 9, 7, -1]

3 x=0:2:10 %generowanie wektora od 0 do 10 co 2 % wart_pocz:krok:wart_koncowa Szybkie generowanie tablicy x=0:10 %generowanie wektora od 0 do 10 co 1 % wart_pocz:wart_koncowa

4 M = [0:5 ; 10:15]%wartość początkowa: wartość końcowa (krok 1) ale M = [0:5; 10:17] błąd arguments dimensions are not consistent x= [0 :10] M=[x; log(x)]

5 x= [0 : 0.1: 10] %wartość początkowa: krok: wartość końcowa M=[x; sind(x)]

6 m = m1*m2 %mnożenie macierzy m = m1.*m2 %mnożenie elementowe macierzy Uwaga na wymiary!!!!!!!!!! m = m' % – transponowana det (m) %wyznacznik macierzy (kwadratowej!) mo = m^(-1) %obliczenie macierzy odwrotnej! mo= inv(m) % także obliczenie macierzy odwrotnej! m*mo %sprawdzenie - macierz jednostkowa Operacje na tablicach

7 jeśli A i B są tablicami C=A*B to iloczyn macierzowy – kiedy dozwolony? - gdy macierz A ma tyle kolumn ile macierz B wierszy D=A.*B to iloczyn elementowy – każdy element macierzy D powstaje z iloczynu odpowiednich elementów macierzy A i B – dozwolony gdy A i B mają te same rozmiary podobnie./.^ (dzielenie i potęgowanie elementowe) A^2 % tożsame z A*A (uwaga macierz A musi być kwadratowa) A.^2 % każdy element do kwadratu – A dowolnego rozmiaru Operatory "kropkowe" dla tablic

8 *= sumy iloczynów.* = / = ^ = Proste przykłady operacji macierzowych

9 M=[ ] M(3) trzeci element tablicy Indeksowanie tablicy – numeracja od 1 Dostęp do elementu tablicy: M2=[ ; ] M2(2,3)

10 rand() rand(5) – generuje tablicę kwadratową 5x5 rand(5,4) – generuje tablicę 5x4 det(tablica) oblicza wyznacznik macierzy kwadratowej max(tablica) min(tablica) wyznaczają wierszową tablicę ekstremów każdej kolumny max(max(tablica)) wyznacza maksymalny element w tablicy sum(tablica) wyznacza sumę elementów w kolumnach tablicy sum(sum(tablica)) wyznacza sumę elementów w kolumnach tablicy i inne np. size(tablica) sort(tablica) Wybrane funkcje dla tablic

11 ndims(A) – ile wymiarów macierzy numel(A) – liczba elementów macierzy reshape(A,n,m) – rekonfiguracja macierzy size(A) – rozmiar macierzy length(A) – największy rozmiar

12 sort (A, i, typ) - sortowanie i: 1 - kolumny lub 2 - wiersze typ: 'ascend' 'descend' domyślne wartości: 1 i 'ascend' m = sortowanie kolumnami m1 = sortowanie wierszami m2 = sortowanie wierszami malejąco m2 = clc m=round(10*rand(5)) disp('sortowanie kolumnami') m1=sort(m,1) disp('sortowanie wierszami') m2=sort(m,2) disp('sortowanie wierszami malejąco') m2=sort(m,2,'descend')

13 >> M=rand(3) M = >> size(M) ans = 3 3 >> Przykład

14 Możliwe jest także tworzenie tzw. tablic komórkowych (struktur) >>A = {[1 8 5], 'Jakiś tekst'; 2+4i, 1:2:7} Po co? Umożliwiają umieszczenie różnych typów danych w komórkach (tablice heterogeniczne) – teksty, dane liczbowe, tablice >> T= A{1} % pierwsza składowa tablicy A T = A = [1x3 double] 'Jakiś tekst' [ i] [1x4 double]

15 2x + 3y – 4z = 5 x + y – z = 3,5 –2,5y – z = 2 Rozwiązanie: A = [ ; ; ] B = [ 5 ; 3.5 ; 2] X= A^(-1)*Bwektor rozwiązań sprawdzenie – wynikiem powinien być wektor wyrazów wolnych B A*X Rozwiązywanie układu równań liniowych

16 Funkcja roots(M) wyznaczanie pierwiastków równania n-tego stopnia - gdzie M jest wektorem współczynników przy kolejnych potęgach np. roots ([ ]) wyznacza pierwiastki równania: x 3 + 3x 2 –4 =0

17 WYKRESY 2-wymiarowe x=0:10 y=[ ] z=[ ] %trzeci wektor title('wykres')%dodanie tytułu plot(x,y) %rysowanie wykresu plot(x,y,'r')%'r' –red y=x plot(x,y. 'k'), grid %'k' –black 1 sposób: funkcja plot(x,y) Wymaga utworzenia dwóch wektorów o tej samej liczbie elementów

18 x=0:90%generowanie wektora co 1 y=sin(pi*x/180) %wektor y plot(x,y) %rysowanie Przykłady wykresów funkcji x=0:pi/50:6*pi y=cos(2*x)./sqrt(x+1) plot(x,y) x = - 9:1:9 z = x.^2 plot(x, z) Uwaga: zapis kropkowy elementowe dzielenie(mnożenie wektorów)

19 Wykres funkcji podanej jako parametr tekstowy jedna krzywa: fplot('sin(x*x)/x',[0 4*pi]) punkt dzielenia przez 0 nie jest rysowany - ostrzeżenie dwie krzywe: fplot('[sin(x*x)/x cos(x)]',[0.01 4*pi]) Uwaga: nie musi być użyte x jako argument funkcji w jej opisie 2 sposób: Funkcja fplot

20 Krzywe 3D Wykorzystujemy tu funkcję plot3(y,z,x). Przykładowo dla helisy danej równaniami: y=sin(x)z=cos(x) Tworzymy m-plik: t = 0:pi/50:10*pi; plot3(sin(t),cos(t),t); Wykresy 3D

21 Korzystamy z funkcji mesh(x,y,z). Przykładowo: dla powierzchni podanej równaniem: z=cosx siny Powierzchnie 3D clear x = (0:0.1:pi)'%wektor kolumnowy! y = x'%wektor wierszowy! z=cos(x) * sin(y)%przeanalizować tablicę z mesh(x, y, z)

22 Przykładowe wykresy powierzchniowe 3D peaks cylider (srednica) sphere (precyzja)

23 Instrukcje sterujące w MATLABIE

24 Funkcja dla interaktywnego wprowadzania danych przez użytkownika x = input('Podaj x:')

25 prompt = {'Rozmiar tablicy:'}; tytul = ''; linii = 1; def = {'1'}; wymiar = inputdlg(prompt,tytul,linii,def); M=rand(str2double(wymiar{1})) Trudniejsze – do samodzielnej analizy

26 Funkcja dla wypisania tekstu disp(' Wyniki obliczeń ') Funkcja wypisania wartości zmiennej disp(x) x=pi; y=2*pi; fprintf (1, ' x= %6.2f y = %12.8f \n', x, y) Formatowane wypisanie tekstu i wartości zmiennych Sposoby wyprowadzania danych 6 miejsc x= 3.14 y = zmień wierszmiejsca dziesiętne

27 x = 0: 0.1:1; y = [x; exp(x)]; fid = fopen('tab.txt','wt'); fprintf(fid,'%6.2f %10.8f \n',x, y); fclose(fid); Można też zapisać tablicę w pliku nazwa pliku typ:zapis (write) zamknięcie pliku zawartość pliku tab.txt

28 clear c = [ ; ] save ('mydata.dat', 'c','-ASCII') clear load ('mydata.dat') disp('Dane z pliku:'); mydata Zapis elementów tablicy do pliku ASCII i odczyt z pliku a=rand(3) b=6 save ('plik.mat', 'a', 'b') clear a clear b load ('plik.mat') disp(a) disp(b) Zapis danych do pliku typu mat i odczyt z pliku

29 if warunek1 instrukcje (gdy spełniony warunek1) elseif warunek2 instrukcje (gdy spełniony warunek2) else instrukcje (gdy niespełnione warunki) end Poznaliśmy instrukcję warunkową if

30 Instrukcja iteracyjna („pętla liczona”) for for zmienna = wartość_pocz:krok: wartość_końcowa, instrukcja, itd. …. następne instrukcje end UWAGA: Kończymy instrukcję słowem kluczowym end

31 for i= 1:1:10, a(i) = i end; Przykład 3

32 for i= 1:1:10, for j = 1:1:10, a(i, j) = i*j end Przykład 4 ("zagnieżdżanie" iteracji):

33 a=0; suma = 0; for i= 1:1:5, for j = 1:1:5, a(i, j) = 2*i - 4* j, pause, %zatrzymuje do naciśnięcia klawisza suma=suma+a(i, j); end disp(suma) Przykład 5 (sumowanie elementów w tablicy dwuwymiarowej):

34 a=rand(5) licznik = 0; for i= 1:1:5, for j = 1:1:5, if a(i,j)>0 licznik=licznik+1 end disp(licznik) Przykład 6 (zliczanie dodatnich elementów w tablicy dwuwymiarowej):

35 a=rand(5) disp('Oto 3 wiersz') for k= 1:1:5, disp(a(3, k)) end disp('Oto przekątna') for k= 1:1:5, disp(a(k, k)) end Przykład 7


Pobierz ppt "Wykład 2 Matlab tablice MOiPP. TABLICE – gotowe operacje rachunku macierzowego wektory: M1= [1 2 3 4 5] %przypisanie tablicy wierszowej M2 = [1; 2; 1;"

Podobne prezentacje


Reklamy Google