Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Matlab c.d. Macierze cd. Wykresy graficzne Instrukcja iteracyjna for Sortowanie Wykład 7 Informatyka Transport.

Podobne prezentacje


Prezentacja na temat: "Matlab c.d. Macierze cd. Wykresy graficzne Instrukcja iteracyjna for Sortowanie Wykład 7 Informatyka Transport."— Zapis prezentacji:

1 Matlab c.d. Macierze cd. Wykresy graficzne Instrukcja iteracyjna for Sortowanie Wykład 7 Informatyka Transport

2 Użyteczne funkcje macierzowe rand ( n) - losowo generowana macierz kwadratowa n x n rand(n,m)- losowo generowana macierz kwadratowa n x m sum (A)- wektor sum elementów w kolumnach macierzy A sum(sum(A)) - suma wszystkich elementów macierzy 2-wymiarowej max(A)- wektor elementów maksymalnych w kolumnach max(max(A)) - element największy w macierzy dwuwymiarowej min(A)- wektor elementów minimalnych w kolumnach macierzy A min(min(A)) - element najmniejszy w macierzy dwuwymiarowej ndims(A) - ile wymiarów macierzy numel(A) - liczba elementów macierzy size(A)- rozmiar macierzy (tablica rozmiarów we wszystkich wymiarach) 2

3 Przykład clc clear M=[1 1 1; 5 5 5]; x=size(M) y=numel(M) x= 2 3 y= 6 Wyniki

4 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 m3 = 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') m3=sort(m,2,'descend') 4

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

6 Tablice komórkowe (cell) >>A = {[1 8 5], 'Jakiś tekst'; 2+4i, 1:2:7} Po co? Umożliwiają one umieszczenie różnych typów danych w komórkach tablicy (tablice heterogeniczne) – teksty, dane liczbowe, inne tablice >> T= A{1} % pierwsza składowa tablicy A T = A = [1x3 double] 'Jakiś tekst' [ i] [1x4 double] 6

7 Tablice - struktury (struct) Przykład: Umożliwiają one umieszczenie różnych typów danych w nazwanych komórkach tablicy, zwanych polami Dostęp: 7 nazwa_tablicy = struct('nazwa_pola1', wartosc_pola1, 'nazwa2', wartosc2, …) Definiowanie: osoba=struct('Nazwisko','Kowalski','wiek',25) disp(osoba.wiek) osoba.wzrost=170 % dodanie nowego pola nazwa_tablicy.nazwa_pola

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

9 x=0:90%generowanie wektora co 1 y=sin(pi*x/180) %wektor y plot(x,y),grid%wykres z siatką 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) 9

10 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: zamiast x można użyć innej, dowolnej nazwy zmiennej niezależnej 2 sposób: Funkcja fplot 10

11 Krzywe 3D Wykorzystujemy funkcję plot3(y,z,x) Przykładowo dla krzywej (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 11

12 Korzystamy z funkcji mesh(x,y,z) Dla powierzchni podanej równaniem: z=cos3x siny 12 Wykresy powierzchniowe (3D)

13 clear y = 0:0.01:pi%wektor wierszowy x = y'%wektor kolumnowy! z=cos(3*x) * sin(y)% tablica z będzie kwadratowa mesh(x, y, z) Piszemy m-plik: rezultat mnożenia dwóch wektorów: * sin y cos3x

14 Przykładowe funkcje rysujące standardowe wykresy powierzchniowe 3D peaks cylider (średnica) sphere (precyzja) 14

15 Instrukcja iteracyjna („pętla liczona”) for zmienna = wartość_pocz : krok: wartość_końcowa instrukcja …. end Schemat iteracji: 15 Jeśli pominięty krok to krok=1 blok instrukcji powtarzanych

16 clear for i= 1:1:10, a(i) = i; %element tablicy disp(a) pause end; Przykłady prostych iteracji ("pętli"): clc for i= 1:10, disp('jakiś tekst') end; 16

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

18 18 for i= 1:5, for j = 1:i, a(i, j) = i*j; end disp(a) Przykład (uzależnienie licznika "pętli wewnętrznej):

19 a=0; suma = 0; for i= 1:5, for j = 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 (sumowanie elementów w tablicy dwuwymiarowej): 19

20 clear; clc a=rand(5,5)-0.5 %elementy dodatnie i ujemne iledod= 0; for i= 1:1:5, for j = 1:1:5, if a(i, j)>0 iledod=iledod+1; end disp(iledod) Przykład (zliczanie elementów dodatnich w tablicy dwuwymiarowej): 20

21 a=rand(5) disp('Oto 3-ci 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 21

22 Porównywanie kolejnych par elementów sąsiadujących i zamiana miejscami w przypadku niewłaściwej kolejności Sortowanie bąbelkowe N N-1 porównańWykonujemy N przebiegów Sortowanie bąbelkowe skrócone Przebiegów wykonujemy N-1 W każdym kolejnym przebiegu liczba analizowanych par jest zmniejszana o 1, a

23 PRZEBIEG 1 PRZEBIEG

24 24 clc clear N=8; %liczba elementów M=round(100*rand(1,N)) %losujemy wektor M1=sort(M) %sortowanie funkcyjne %Nasz algorytm for n=1:N-1 for m=1:N-n if M(m)>M(m+1) p=M(m); M(m)=M(m+1); M(m+1)=p; end disp('Nasz algorytm bąbelkowy daje efekt:') disp(M) Sortowanie bąbelkowe – m-plik


Pobierz ppt "Matlab c.d. Macierze cd. Wykresy graficzne Instrukcja iteracyjna for Sortowanie Wykład 7 Informatyka Transport."

Podobne prezentacje


Reklamy Google