Programowanie w języku Matlab

Slides:



Advertisements
Podobne prezentacje
Tablice 1. Deklaracja tablicy
Advertisements

Funkcje w PHP ABK.
Język C/C++ Funkcje.
Rekurencja 1 Podprogram lub strukturę danych nazywamy rekurencyjną, (recursive subprogram, recursive data structure) jeżeli częściowo składa się z samej.
Język ANSI C Funkcje Wykład: Programowanie komputerów
Wprowadzenie do języka skryptowego PHP
Języki programowania C++
typy całkowite (całkowitoliczbowe)
PROGRAMOWANIE STRUKTURALNE
Tworzenie i obsługa programów – przykład 3 uwagi cd. Wykorzystując różne klasy biblioteki języka Java należy pamiętać w jakim pakiecie się znajdują. Wszystkie.
formatowanie kodu źródłowego
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 8: Wykorzystanie procedur i funkcji © Jan Kaczmarek.
Instrukcje Instrukcja : definicja obliczenia i określenie sposobu wykonania tego obliczenia. Program : ciąg instrukcji wykonywanych kolejno od pierwszej.
Podstawy informatyki Informatyka stosowana Prowadzący: Grzegorz Smyk
Kurs Pascala – spis treści
1 Dygresja: cztery płyty główne…. 2 Dygresja: osobliwości C /* cos o nieistniejacym typie Boolean */ /* oraz o operatorze przecinkowym */ #include int.
INFORMATYKA Wykładowca: mgr Tadeusz Ziębakowski p. 126 I piętro (naprzeciw dziekanatu)
Ogólne jednostki programowe 1
Wykład 2 struktura programu elementy języka typy zmienne
Instrukcja skoku GO TO etykieta Np. GO TO 100 ….. 100WRITE (*,*) Przeskok do instrukcji 100 Uwaga! NIE WOLNO skakać do wnętrzna złożonych instrukcji warunkowych.
Schemat Hornera Mgr inż. Michał Szucki.
AWK Zastosowania Informatyki Wykład 1 Copyright, 2003 © Adam Czajka.
Podstawy programowania
Podstawy programowania II
Instrukcje sterujące część 1
Podstawy programowania
Podstawy programowania
Programowanie w języku Matlab
Programowanie strukturalne i obiektowe
Funkcje w Pascalu Przypomnienie wiadomości o procedurach Prowadzący: Anna Kaleta Piotr Chojnacki.
© A. Jędryczkowski – 2006 r. © A. Jędryczkowski – 2006 r.
Wyrażenia w Turbo Pascalu.
Algorytmy i struktury danych
Procedury i funkcje.
PL/SQL Zajęcia nr II PL/SQL(2) M. Rakowski - WSISiZ.
PHP: warunki, pętle, switch, break, continue
1 Wykład 8 Podprogramy. 2 Pojęcie i istota stosowania dzielenie programu na części (logicznie spójne) - nazwane - niezależne od pozostałych części - z.
Programowanie strukturalne i obiektowe
STEROWANIE Ale nie tylko
Andrzej Repak Nr albumu
C# Platforma .NET CZ.3 Kuba Ostrowski.
Podstawy informatyki 2013/2014
INSTRUKCJE Umożliwiają zapis algorytmu, służą do sterowania przebiegiem programu. warunkowe (podejmowanie decyzji) 1. if-else „jeżeli”, 2. switch-case.
Użytkowanie i programowanie Matlaba
Przekazywanie parametrów do funkcji oraz zmienne globalne i lokalne
Informatyka MZT1 Wykład 6 Iteracje while i repeat Tablice Rekordy
Wykład 10 typ zbiorowy rekurencja.
Podstawy języka Instrukcje - wprowadzenie
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Technologie internetowe Wykład 5 Wprowadzenie do skrytpów serwerowych.
PWSW Mechatronika Wykład 7 Matlab cd.
Instrukcje wyboru.
Programowanie proceduralne Podstawy Programowania dla geoinformatyków Wykład 3 Rafał Witkowski, 2015.
Podsumowanie wiedzy MPDI2 sem.3 INFORMATYKA. tworzenie nowego pliku i katalogu, nawigacja po katalogach, listowanie zawartości katalogu, zmiana nazw,
Pętle – instrukcje powtórzeń
Seminarium Dyplomowe: Metodyka i Techniki Programowania Autor: Bartłomiej Fornal.
Instrukcje warunkowe w php. Pętla FOR Czasem zachodzi potrzeba wykonania jakiejś czynności określoną ilość razy. Z pomocą przychodzi jedna z najczęściej.
PHP jest językiem skryptowym służącym do rozszerzania możliwości stron internetowych. Jego składnia jest bardzo podobna do popularnych języków programowania.
Wstęp do programowania Wykład 2 Dane, instrukcje, program.
Podstawy informatyki Preprocesor Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego Matuszyka Podstawy.
Pakiety numeryczne Skrypty, funkcje Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.
Podstawy informatyki Mechanizm obsługi sytuacji wyjątkowych Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu.
Pakiety numeryczne Operatory, instrukcje sterujące, operacje bitowe Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.
 Formuła to wyrażenie algebraiczne (wzór) określające jakie operacje ma wykonać program na danych. Może ona zawierać liczby, łańcuchy znaków, funkcje,
Czym jest PHP? ● Językiem programowania przeznaczonym do tworzenia i generowania dynamicznych stron WWW. Działa po stronie serwera: Klient Żądanie strony.
Dane, zmienne, instrukcje
Haskell Składnia funkcji.
Język C++ Typy Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego.
Zapis prezentacji:

Programowanie w języku Matlab D. Caban, P. Skurowski Wykład 2. Instrukcje sterujące, Funkcje

Instrukcje sterujące z reguły stosowane do sterowania wykonaniem podprogramów zapisanych w m-plikach if switch for while continue break try-catch return

Instrukcja if wwi – wyrażenie warunkowe dające wynik typu logicznego pi – ciąg poleceń Części elseif i else nie są obowiązkowe if ww1 p1 elseif ww2 p2 elseif ww3 p3 : else pn end

Wyrażenia warunkowe proste : count < limit, isreal(A) złożone: (count < limit) && ((height - offset) >= 0) Jeżeli wynikiem wyrażenia jest: skalar o wartości logicznej 1, tablica ze wszystkimi elementami o wartości logicznej 1 wówczas warunek jest spełniony. Wykonywany jest ciąg poleceń odpowiadający pierwszemu spełnionemu warunkowi lub podany po słowie else, jeżeli żaden nie jest spełniony. Zapis niektórych wyrażeń można uprościć np. A ~= 0 jest równoważne A. Nie zawsze zachodzi potrzeba obliczania wartości wyrażeń prostych w wyrażeniach złożonych: A && B – wartość B jest obliczana tylko wtedy, gdy A == 1, A || B – wartość B jest obliczana tylko wtedy, gdy A == 0.

Instrukcja switch wyr – wyrażenie dające w wyniku skalar lub łańcuch si – stała lub lista stałych Część otherwise nie jest obowiązkowa Wykonywany jest ciąg poleceń odpowiadający stałej równej wartości wyrażenia lub podany po słowie otherwise przy braku zgodności Jeśli wybór odbywa się na podstawie zawartości łańcucha – lepiej stosować instrukcję switch niż if ... elseif ... else ... switch wyr case s1 p1 case s2 p2 : otherwise pn end

wartości przyjmowane przez zmienną sterującą Instrukcja for for zs = wyr p end zs – zmienna sterująca, wyr – wyrażenie p – ciąg poleceń Liczba powtórzeń jest równa liczbie wartości, jakie może przyjąć zmienna sterująca. wyrażenie wartości przyjmowane przez zmienną sterującą 1:0.5:3 1, 1.5, 2, 2.5, 3 4:-1:1 4, 3, 2, 1 ’a’:’e’ ’a’, ’b’, ’c’, ’d’, ’e’ [1, 5, 99, -3] 1, 5, 99, -3 ’abegxa’ ’a’, ’b’, ’e’, ’g’, ’x’, ’a’ [1 2 3; 4 5 6] [1; 4], [2; 5], [3; 6]

Instrukcja while while ww p ww – wyrażenie warunkowe p – blok poleceń end ww – wyrażenie warunkowe p – blok poleceń Ciąg poleceń wykonywany jest tak długo, jak długo warunek jest spełniony.

Sterowanie nadzwyczajne pętlą Instrukcja continue Powoduje przerwanie bieżącego obiegu pętli i przejście do następnego. Instrukcja break Powoduje przerwanie pętli.

Sterowanie dodatkowe przebiegiem m-pliku Instrukcja return Umożliwia przerwanie działania m-pliku w dowolnym miejscu Instrukcja try-catch try pt catch pc end pt, pc – ciągi poleceń Jeśli wykonanie któregoś z poleceń ciągu pt zakończy się niepowodzeniem, wykonywany jest ciąg poleceń pc

Struktura m-pliku funkcyjnego: M-pliki funkcyjne Struktura m-pliku funkcyjnego: function [zm. wyj.] = nazwa(zm. wej.) linia definicji % NAZWA przeznaczenie linia pomocy % Opis działania % ..... tekst pomocy ... kod funkcji

Przykłady linii definicji function [x,y,z] = func1(a,b,c) function [] = func2(a) function func2(a) function [x,y] = func3() function [x,y] = func3 nazwy: funkcji i m-pliku powinny być takie same, argumenty są przekazywane przez wartość, zmienne tworzone w funkcji są zmiennymi lokalnymi, przechowywanymi w osobnej przestrzeni roboczej, zmienne lokalne przestają istnieć po zakończeniu działania funkcji, chyba że zostały zadeklarowane jako trwałe (ang. persistent),

Wywołania funkcji funkcję można wywołać z mniejszą liczbą argumentów, funkcja może zwrócić mniejsza liczbę wartości, funkcja może wykonywać operacje na tych zmiennych z przestrzeni roboczej, które zostaną zadeklarowane jako globalne: global z1 z2 ... deklarację taką trzeba podać w wierszu poleceń oraz w treści funkcji. wywołanie funkcji nargin nargout >> func1 >> 1 + func1 1 >> k = func1(1,2) 2 >> [k,l] = func1(1,2,3) 3

Przykład function s = suman(n) % SUMAN suma n wyrazów ciągu % Funkcja oblicza sumę n wyrazów ciągu % 1 + 1/2 + 1/3 + .... + 1/n % Argument n powinien być skalarem. if nargin < 1 % blok 1 error('Błąd - wymagany jeden argument'); end if prod(size(n)) ~= 1 % blok 2 error('Błąd - argument powinien być skalarem'); s = 1; % blok 3 for k = 2:n s = s + 1/k;

Funkcje o dowolnej liczbie argumentów i wartości standardowe tablice komórkowe: varargin i varargout zmienne te należy wymieniać na końcach list. function [out,varagout]=mojrys(x,varargin) out=plot(x,varargin{:}); if nargout > 1 varargout{1}=get(out,’Name’); if nargout > 2 varargout{2}=get(out,’Tag’); if nargout > 3 varargout{3}=gca; end wywołanie [handler]= mojrys(sin(0:.1:1),'color',[.5 .7 .3],'linestyle',':'); [handler,nazwa,tag,osie]= mojrys(sin(0:.1:1),'color',... [.5 .7 .3],'linestyle',':');

Podfunkcje m-plik może zawierać wiele funkcji o różnych nazwach, pierwsza funkcja to funkcja podstawowa, pozostałe to podfunkcje, podfunkcje mogą być wywoływane tylko przez funkcję podstawową, podfunkcja nie ma dostępu do zmiennych lokalnych funkcji podstawowej i innych podfunkcji. Funkcje zagnieżdżone są to funkcje definiowane w treści innych funkcji, treść funkcji zagnieżdżonych, jak również treści pozostałych funkcji w m-pliku, musi być zakończona słowem end.

Przykład function A(x, y) % funkcja podstawowa B(x, y); D(y); function B(x, y) % zagnieżdżona w A C(x); D(y);  function C(x) % zagnieżdżona w B D(x); end end  function D(x) % zagnieżdżona w A E(x); function E(x) % zagnieżdżona w D ...

Wywołania podfunkcji funkcję zagnieżdżoną może wywołać funkcja: z sąsiedniego wyższego poziomu zagnieżdżenia (A może wywołać: B i D, nie może wywołać: C oraz E), z tego poziomu zagnieżdżenia (B może wywołać D i na odwrót), z dowolnego niższego poziomu zagnieżdżenia (C może wywołać: B i D, nie może wywołać E), funkcje z dowolnego poziomu zagnieżdżenia mogą wywoływać podfunkcje, do zmiennych lokalnych funkcji zagnieżdżonej mogą się odwoływać funkcje z wyższych poziomów zagnieżdżenia, funkcja zagnieżdżona ma dostęp do zmiennych lokalnych funkcji z wyższych poziomów zagnieżdżenia, interpretacja odwołań zmiennych: varargin i varargout – zależy od tego, czy występują one w definicji funkcji czy nie

Pliki funkcji – specyficzne cechy lokalizacji Funkcje prywatne zapisywane w m-plikach w podkatalogach o nazwie private, dostępne tylko dla funkcji i skryptów z katalogu nadrzędnego, podkatalogów z funkcjami prywatnymi nie należy dołączać do listy katalogów przeszukiwanych Funkcje przeciążone stosowane wówczas, gdy sposób przetwarzania danej zależy od jej typu, funkcje te mają takie same nazwy, są one przechowywane w podkatalogach o nazwach @nazwa_typu.

Definiowane funkcji w wierszu poleceń Funkcje anonimowe: zawierają jedno wyrażenie, postać definicji: zmienna = @(lista argumentów) wyrażenie argumenty oddziela się przecinkami, lista może być pusta. operator @ tworzy tzw. uchwyt funkcji, wywołanie funkcji anonimowej zmienna(argumenty) zmienna() w wyrażeniu mogą wystąpić zmienne z przestrzeni roboczej, ale funkcja będzie używać wartości, które zmienne miały w chwili definicji funkcji, można tworzyć komórkowe tablice z uchwytami.

Funkcje definiowane przy użyciu inline zawierają jedno wyrażenie, postać definicji zmienna = inline(’wyrażenie’) zmienna = inline(’wyrażenie’, ’argument 1’, ...) W pierwszym przypadku funkcja inline sama określi argumenty wyrażenia.

Uchwyty do funkcji można tworzyć uchwyty również do funkcji zapisanych w m-plikach, wykorzystujemy w tym celu operator fhandle=@nazwapliku fsin=@sin; y=feval(fsin,x); jest równoważne: y=sin(x); uchwyt do funkcji jest argumentem niektórych standardowych funkcji Matlaba np. feval, fzero czy pakietu optymalizacyjnego: fzero, fmincon etc [x,fval]=fmincon(@(x)objfun(x,t),x0,[],[],[],[],... [0 0 0], [1 1 1],@confun,options);