1 / 34

PWSW Mechatronika

PWSW Mechatronika. Wykład 7. Matlab cd. Przydatne polecenia. help - pomoc globalna help elfun - pomoc – spis funkcji elementarnych help rem - pomoc na temat wybranej funkcji (tu: rem ) format long - wyświetlanie liczb z 15-ma miejscami dziesiętnymi

dalit
Download Presentation

PWSW Mechatronika

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PWSW Mechatronika Wykład 7 Matlabcd

  2. Przydatne polecenia help - pomoc globalna help elfun - pomoc – spis funkcji elementarnych help rem - pomoc na temat wybranej funkcji (tu: rem) format long - wyświetlanie liczb z 15-ma miejscami dziesiętnymi format short - liczby wyświetlane z 4-ma miejscami dziesiętnymi clc - czyszczenie ekranu clear zmienna - usunięcie zmiennej z obszaru roboczego (Workspace) clear - usunięcie wszystkich zmiennych z obszaru roboczego

  3. Algorytm zaokrąglania z dokładnością do N miejsc dziesiętnych clc format long x=pi N=5 y= round(x*10^N)/10^N format short

  4. Generator losowy rand Bezargumentowa funkcja! Losuje liczbę rzeczywistą z przedziału (0, 1) x=rand Zmiana przedziału losowania: x=round(100*rand-50) Losowanie liczby całkowitej z przedziału (-50, 50)

  5. Interakcja z użytkownikiem (instrukcja wejścia) zmienna = input('tekst zachęty'); Działanie: skrypt się zatrzymuje i czeka na podanie wartości dla zmiennej a = input('Podaj a:'); b = input('Podaj b:'); c = input('Podaj c:');

  6. Prezentacja wyników w Matlabie zmienna- proste wypisanie wartości disp( zmienna) - funkcja wypisania wartości disp ('jakiś tekst') - wypisanie tekstu na ekranie

  7. Prezentacja wyników - tekst i dane fprintf('Wartość zmiennej a wynosi %znak\n', a); gdzie %znak to sposób wyświetlania: %d liczba całkowita %e liczba w zapisie wykładniczym, np. 3.1415e+00 %f zapis stałoprzecinkowy Uwaga: \n przejście do nowego wiersza

  8. WYKRESY 2-wymiarowe 1 sposób: Funkcja plot Wymaga utworzenia dwóch wektorów o tej samej liczbie elementów x=0:10 %generowanie wektora co 1 % wart_pocz:wart_koncowa y=[5.1 1.1 -2 -3 4.2 5.5 4.3 3.1 4.5 5.9 4.9] z=[0 2 3 3 5 4 3 4 5 4 9] %trzeci wektor title('wykres') %dodanie tytułu plot(x,y) %rysowanie wykresu plot(x,y,'r',x , z,'w') %dwie krzywe y(x) i z(x)

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

  10. 2 sposób: Funkcjafplot 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że być inna litera jako argument funkcji w jej opisie

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

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

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

  14. 2. Metoda wsadowa wykonywania operacji W Matlab-ie można zapisać tekst ciągu instrukcji w pliku tekstowym ASCII o rozszerzeniu m. (tzw. m-pliki lub mex-pliki) • W Matlab-ie można jako polecenie wpisać w linii poleceń nazwę pliku z ciągiem instrukcji - instrukcje pobierane kolejno i wykonywane od pierwszej do ostatniej • Konieczne jest ustawienie "ścieżki" do naszego foldera w menu Currentdirectory

  15. Można wykonać m-plik w Matlabie wpisując w linii poleceń jego nazwę (bez rozszerzenia) >>plik >>test1 lub z okna edytora- Run W m-pliku wpisujemy kolejne instrukcje (bez znaków >>)

  16. Uwaga: Instrukcje oddzielamy przecinkami lub piszemy w osobnych wierszach Średniki na końcu instrukcji powodują brak wyświetlenia echa instrukcji na ekranie.

  17. Instrukcje sterujące w MATLABIE

  18. Instrukcja warunkowa if warunek1 instrukcje (gdy spełniony warunek1) elseif warunek2 instrukcje (gdy spełniony warunek2) else instrukcje (gdy niespełnione warunki) end

  19. Przykłady warunków – użycie operatorów porównania: a == 0(czy równe? – wartość prawda lub fałsz) b<c 2*a >= 5 x ~= 5 (różne od.. ~ to operator negacji

  20. Przykład1: %… poprzednie instrukcje ustalające wartość zmiennej i ifi>0 disp(i); end; jeżeli i jest większe od 0 to wyświetl wartość i, jeśli nie to "nic nie rób"

  21. Przykład 2: a = 1 b = 6 c = 3 delta = b^2 - 4 * a *c; if delta<0 disp ('delta jest ujemne') else disp(delta) end; endkończy instrukcję

  22. Przykład3: …obliczamy jakieś x ifx>0 && x<10 disp('w przedziale 0 10') else disp('poza przedziałem') end; można też and(x>0, x<10) && operator koniunkcji || operator alternatywy jak w JavaScript

  23. Instrukcja iteracyjna („pętla liczona”) forzmienna = wartość_pocz:krok: wartość_końcowa, instrukcja, instrukcja, …. end

  24. Przykład prostych pętli: %generujemy tablicę for i= 1:1:10, a(i) = i^2; end; disp(a) suma=0; for i= 1:1:10, suma=suma+a(i); end; disp('suma=') disp(suma)

  25. Przykład 4 ("zagnieżdżanie" iteracji): for i= 1:1:5, for j = 1:1:5, a(i , j) = i*j%jakieś wyrażenie f(i,j) end end

  26. Przykład 6(sumowanie elementów w tablicy dwuwymiarowej): a=0; suma = 0; for i= 1:1:5, for j = 1:1:5, a(i , j) = 2*i - 4* j, suma=suma+a(i , j); end end disp(suma)

  27. Przykład 6b(sumowanie dodatnich elementów w tablicy dwuwymiarowej): a=0; suma = 0; for i= 1:1:5, for j = 1:1:5, a(i , j) = 2*i - 4* j, if a(i,j)>0 suma=suma+a(i , j); end; end end disp(suma)

  28. Przykład 7 (wielokrotny test – wyznaczanie największego elementu) A=[2 8 6 -1 2 3 9 11 7 12 -4 9 33 1 22 1 0 -3 5 7] maks=A(1) %założenie for i= 2:1:20, if A(i)>maks maks=A(i) end end disp(maks) badamy elementy od 2 do ostatniego

  29. Przykład 8 Ile liczb jest w przedziale [0 5] A=[2 8 6 -1 2 3 9 11 7 12 -4 9 33 1 22 1 0 -3 5 7] ile=1 %założenie for i= 1:1:20, if A(i)>=0 && A(i)<=5 ile=ile+1; end end disp(ile)

  30. Przykład 9 Wykorzystanie standardowej funkcji max (lub min) A=rand(20) % losowe wypełnienie tablicy 20x20 naj1=max(A) naj2 = max(naj1) wektor maksimów w kolumnach (maksima lokalne) największy z maksimów lokalnych

  31. Podstawowe różnice Javascriptvs.Matlab

  32. Sortowanie bąbelkowe Porównywanie kolejnych par elementów sąsiadujących i zamianamiejscami w przypadku niewłaściwej kolejności 1 2 3 4 ..... 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

  33. 1 PRZEBIEG 96 12 22 76 64 23 74 11 2 PRZEBIEG 12 22 76 64 23 74 11 96 i.t.d.

  34. M-plik - sortowanie "bąbelkowe" clc clear N=5; G=rand(1,N) %stadardowa funkcja sortująca G1=sort(G) %sortowanie bąbelkowe for k=1:N-1 for m=1:N-k if G(m)>G(m+1) pom=G(m); G(m)=G(m+1); G(m+1)=pom; end end disp(G) %pokazuje kolejne wypływające "bąbelki" end %ostatecznie po posortowaniu disp(G) zamiana miejscami gdy elementy w niewłaściwej kolejności

More Related