Kier. MTR Programowanie w MATLABie Laboratorium. 1. Tworzenie m-plików skryptowych i uruchamianie skryptów

Podobne dokumenty
Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

SKRYPTY. Zadanie: Wyznaczyć wartość wyrażenia arytmetycznego

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

do MATLABa programowanie WYKŁAD Piotr Ciskowski

1 Podstawy c++ w pigułce.

Wstęp do Programowania Lista 1

Laboratorium Komputerowego Wspomagania Analizy i Projektowania

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji

Ćwiczenie 1. Wprowadzenie do programu Octave

1 Podstawy c++ w pigułce.

Podstawy Programowania C++

Przetwarzanie sygnałów

Cw.12 JAVAScript w dokumentach HTML

Metody numeryczne Laboratorium 2

Podstawy Programowania Podstawowa składnia języka C++

Ćwiczenie 1. Wprowadzenie do programu Octave

1 Programowanie w matlabie - skrypty i funkcje

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

Przykład 1 -->s="hello World!" s = Hello World! -->disp(s) Hello World!

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Programowanie w języku Python. Grażyna Koba

Operacje logiczne i struktury sterujące.

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Wprowadzenie do Scilab: podstawy języka Scilab

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)

Programowanie strukturalne i obiektowe

Pętla for. Matematyka dla ciekawych świata -19- Scilab. for i=1:10... end. for k=4:-1:1... end. k=3 k=4. k=1. k=2

Ćwiczenie 1. Matlab podstawy (1) Matlab firmy MathWorks to uniwersalny pakiet do obliczeń naukowych i inżynierskich, analiz układów statycznych

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW

Metody Numeryczne. Laboratorium 1. Wstęp do programu Matlab

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI I INFORMATYKI INSTYTUT AUTOMATYKI I INFORMATYKI KIERUNEK AUTOMATYKA I ROBOTYKA STUDIA STACJONARNE I STOPNIA

Struktura pliku projektu Console Application

Dynamiczne przetwarzanie stron. dr Beata Kuźmińska-Sołśnia

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Języki skryptowe w programie Plans

Matlab Składnia + podstawy programowania

Instrukcje sterujące. wer. 11 z drobnymi modyfikacjami! Wojciech Myszka :53:

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16

Programowanie komputerowe. Zajęcia 1

Wprowadzenie do programowania w języku C

MATLAB tworzenie własnych funkcji

JAVAScript w dokumentach HTML - przypomnienie

JAVAScript w dokumentach HTML (1)

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język C zajęcia nr 5

Języki programowania zasady ich tworzenia

Pętla for. Wynik działania programu:

Arytmetyka liczb binarnych

Warsztaty dla nauczycieli

Diary przydatne polecenie. Korzystanie z funkcji wbudowanych i systemu pomocy on-line. Najczęstsze typy plików. diary nazwa_pliku

Instrukcje sterujące

Instrukcje sterujące mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2012

W przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby

Instrukcje sterujące. Programowanie Proceduralne 1

JAVAScript w dokumentach HTML (2)

Kilka prostych programów

Laboratorium nr 1. i 2.

3. Instrukcje warunkowe

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

Pętle. Dodał Administrator niedziela, 14 marzec :27

WHILE (wyrażenie) instrukcja;

2 Przygotował: mgr inż. Maciej Lasota

Wprowadzenie do środowiska MATLAB z zastosowaniami w modelowaniu i analizie danych

Podstawy programowania skrót z wykładów:

KARTA KURSU. Języki skryptowe

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI EFEKTY KSZTAŁCENIA

Michał Bielecki, KNI 'BIOS'

PRZETWARZANIE I ORGANIZOWANIE DANYCH: ARKUSZ KALKULACYJNY

Nazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

Informatyka I. Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli. Dr inż. Andrzej Czerepicki

Kiedy i czy konieczne?

Wstęp do Informatyki i Programowania Laboratorium: Lista 1 Środowisko programowania

Algorytmy i struktury danych

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Serwer WWW Apache. Plik konfiguracyjny httpd.conf Definiujemy m.in.: Aktualne wersje 2.4.6, , zakończony projekt

Zmienne powłoki. Wywołanie wartości następuje poprzez umieszczenie przed nazwą zmiennej znaku dolara ($ZMIENNA), np. ZMIENNA=wartosc.

Programowanie robota mobilnego E-puck w języku Python

Umieszczanie kodu. kod skryptu

Przykładowo, jeśli współrzędna x zmienia się od 0 do 8 co 1, a współrzędna y od 12 co 2 do 25, to punkty powinny wyglądać następująco:

Zmienne środowiskowe: Ścieżka przeszukiwana komendą.

Programowanie - instrukcje sterujące

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice.

Laboratorium Systemów SCADA

dr inż. Jarosław Forenc

Pracownia Informatyczna Instytut Technologii Mechanicznej Wydział Inżynierii Mechanicznej i Mechatroniki. Podstawy Informatyki i algorytmizacji

Transkrypt:

Kier. MTR Programowanie w MATLABie Laboratorium Ćw. 3 M-pliki skryptowe w MATLABie. Instrukcje programowania: if, switch, for, while, break, return Wprowadzenie. Tworzenie m-plików skryptowych i uruchamianie skryptów Wpisywanie rozbudowanych poleceń lub skomplikowanych wyrażeń matematycznych bezpośrednio w linii poleceń w oknie Command Window jest uciążliwe, a zaprogramowanie bardziej złożonych obliczeń w taki sposbó staje się praktycznie niemożliwe. Dlatego szereg poleceń do wykonania grupuje się w skryptach, będących plikami tekstowymi zapisywanymi na dysku z rozszerzeniem *.m. Stąd też używane jest określenie m-plik (ang. m-file). Na początku skryptu powinno umieścić się komentarz (dowolny tekst umieszczony liniach poprzedzonych znakiem %), opisujący działanie skryptu. Ze względu na zachowanie uniwersalności pisanych programów wskazane jest używanie w komentarzu tylko znaków ASCII (bez polskich znaków). Z poziomu skryptu możliwe jest wywołanie także innego skryptu. Co prawda m-pliki można tworzyć korzystając z dowolnego edytora ASCII, jednak na ogół znacznie bardziej efektywne jest wykorzystywanie edytora będącego częścią zintegrowanego środowiska programistycznego. Oferuje on szereg narzędzi wspomagających pracę programisty, m. in. kolorowanie składni, podkreślanie par nawiasów, system podpowiedzi. Otwarcie okna edytora w celu utworzenia nowego m-pliku skryptowego jest możliwe przez wybranie opcji New Script w grupie File zakładki HOME na pasku narzędziowym lub wciśnięcie kombinacji klawiszy Ctrl+N. Isniejący plik można otworzyć za pomocą Open lub kombinacji Ctrl+O. Edytor, w zależności od potrzeb, można otworzyć w odrębnym oknie lub jak okno osadzone w oknie MATLABa. Pasek narzędziowy edytora znajduje się w zakładce menu EDITOR. Z poziomu tego paska możliwe jest przeprowadzanie m in. operacji na plikach. Zmiana parametrów edytora (np. wielkość, kolor i krój czcionki, sposób kolorowania składni) możliwa jest dzięki opcji Preferences (Editor /Debugger) dostępnej na głównym pasku narzędzowym w zakładce HOME w grupie ENVIRONMENT. Uruchomienie skryptu polega na wpisaniu w linii poleceń nazwy m-pliku bez rozszerzenia i wciśnięciu klawisza Enter, przy czym plik ten powinien on znajdować się w aktualnym katalogu roboczym lub katalogu do którego została wcześniej zdefiniowana ścieżka dostępu. Konieczne jest przed uruchomieniem zapisanie do m-pliku skryptowego wszystkich zmian (niezapisanie ich spowoduje wykonanie wersji skryptu zapisanej aktualnie na dysku, bez uwzględnienia wprowadzonych zmian). Uruchamianie skryptów możliwe jest także z poziomu wbudowanego edytora na pomocą wywołania opcji Run lub wciśnięcie klawisza F5 (przed uruchomieniem skryptu zmiany wprowadzone do pliku zostają zapisane na dysku). Gdy tak uruchamiany m-plik nie znajduje się w bieżącym katalogu roboczym, MATLAB wyświetla komunikat i prośbę o wybór jednej z opcji: zmiana katalogu roboczego na katalog, w którym znajduje się uruchamiany m-plik (Change Folder), dodanie katalogu do listy ścieżek dostępu (Add Path) lub przerwanie operacji uruchamiania. Wyniki działania skryptu i ewentualne komunikaty o błędach można obserwować w oknie Command Window. Zmienne występujące w pliku skryptowym mają charakter globalny i są dostępne w dowolnej linii realizowanego programu obliczeń. Po zakończeniu wykonania skryptu nadal pozostają w przestrzeni robocznej (o ile nie został usunięte za pomocą funkcji clear).. Wprowadzanie danych z klawiatury

Zatrzymanie działania programu do czasu prowadzenia danych z klawiatury możliwe jest za pomocą funkcji input. Na ekranie wyświetlany jest komunikat będący parametrem funkcji: komunikat = 'Podaj liczbe: '; a = input(komunikat); y = 5 + a; Pod zmienną a podstawiona zostanie stała liczbowa, tablica lub wynik wyrażenia, które wprowadzono z klawiatury. Jeśli wprowadzony z klawiatury ciąg znaków ma być zachowany jako łańcuch znakowy należy użyć funkcji z parametrem s : a = input(komunikat, s ); 3. Operatory relacji i operatory logiczne Sterowanie realizacją programu wymaga podejmowania określonych decyzji będących wynikiem operacji wykazujących operatory relacji i operatory logiczne. Operatory relacji służą porównywaniu wartości i w zależności od wyniku porównania zwraca jest wartość jeśli wynik porównania jest prawdą oraz wartość 0 w przeciwnym przypadku. Są one traktowane w wyrażeniach jako operatory arytmetyczne. W przypadku porównywania wartości skalarnych wynikiem jest wartość skalarna (0 lub ), zaś przy porównywaniu macierzy (muszą mieć wtedy jednakowy wymiar) porównanie jest realizowane element po elemencie i wynikiem jest macierz o tej samym wymiarze wypełniona wartościami 0 lub w zależności od wyniku porównania. Do operatorów relacji należą: < mniejsze od <= mniejsze lub równe > większe od >= większe lub równe == równe ~= różne od (nierówne) Przykłady działania operacji relacji: A=[8 3; 4 8 5; 6 0 8]; B=[8 3 ; 5 8 4; 7 6 8]; A<B 0 0 0 0 0 A<=B 0 0 0 A>B 0 0 0 0 0 0 A==B A~=B 0 0 0 0

0 0 A>4 0 0 0 Operatory relacji mogą być wykorzystane również jako elementy wyrażenia będącego parametrem funkcji find do identyfikacji indeksów elementów wektora, spełniających daną relację. Przykładowo: >> U=[30 5 9 3 35 0 30 9 3 30]; >> a=find(u<30) a = 3 6 8 >> b=find(u>30) b = 4 5 9 Wywołanie funkcji i= find(u) zwraca indeksy elementów wektora U różnych od zera. >> U=[30 5 9 3 35 0 30 9 0 30]; >> i=find(u) i = 3 4 5 6 7 8 0 W przypadku operatorów logicznych operandami są liczby, przy czym wartość różna od zera jest traktowana jako prawda, zaś zerowa jako fałsz logiczny, w wyniku zwracają wartość (prawda) lub 0 (fałsz). Operacja logiczna na wartościach skalarnych daje wartość skalarną (0 lub ), zaś w przypadku macierzy operacja jest realizowana element po elemencie. Operator negacji (zaprzeczenia) ma tylko jeden operand, pozostała operatory dwa. Do operatorów logicznych należą: & iloczyn logiczny (koniunkcja, and), suma logiczna (alternatywa, or), ~ negacja (zaprzeczenie, not). Operacje logiczne można także realizować za pomocą funkcji logicznych: and(a,b) odpowiednik A&B or(a,b) odpowiednik A B xor(a,b) różnica symetryczna (exclusive-or) not(a) odpowiednik ~ all(a) zwraca, gdy wszystkie elementy wektora A są niezerowe, 0 w przeciwnym przypadku, any(a) zwraca, gdy przynajmniej jeden element wektora A jest niezerowy, 0 w przeciwnym przypadku, Kolejność realizacji operacji arytmetycznych i logicznych przedstawia tab.. Tab.. Kolejność wykonywania operacji arytmetycznych i logicznych Kolejność Operacja Nawiasy 3

Potęgowanie 3 Operator NOT 4 Mnożenie, dzielenie 5 Dodawanie odejmowanie 6 Operatory relacji 7 Operator AND 8 Operator OR Przykłady działania operatorów logicznych: A=[8 3; 4 8 5; 6 0 8]; B=[8 3 ; 5 8 4; 7 6 8]; A&B 0 A B ~A 0 0 xor(a,b) 0 0 4. Instrukcje sterujące działaniem programu W poleceniach, m-plikach skryptowych i funkcyjnych można stosować następujące instrukcje sterujące działaniem programu: warunkowe: if, switch iteracyjne: for, while uzupełniające: return, break, continue. Instrukcja warunkowa if elseif else Składnia instrukcji: if wyrazenie_logiczne instrukcje elseif wyrazenie_logiczne instrukcje else instrukcje3 Występowanie elseif oraz else jest opcjonalne. Ponadto może wystąpić kilka instrukcji elseif. 4

W wyrażeniach logicznych stosowane są operatory logiczne. Schemat blokowy instrukcji warunkowej przedstawia rys.. N wyrazenie_logiczne T wyrazenie_logiczne N instrukcje T instrukcje3 instrukcje Instrukcja warunkowa switch Rys.. Schemat blokowy instrukcji warunkowej Składnia instrukcji: switch wyrazenie_przelaczajace case wartosc_wyrazenia_przelaczajacego instrukcje,... instrukcje case {WWP, WWP, WWP3,...} instrukcje,... instrukcje otherwise instrukcje,... instrukcje Instrukcje po case są wykonywane, gdy wyrazenie_przelaczające przyjmie wartosc_wyrazenia_przelaczajacego (WWP). Jeżeli wyrazenie_przelaczajace nie przyjmie żadnej wartości z podanych po case wykonywane są instrukcje znajdujące się po otherwise. Po słowie case można umieścić więcej niż jedną wartość wyrażenia przełączającego kolejne wartości umieszcza się w nawiasie klamrowym i oddziela przecinkami. Wyrażenie przełączające może być liczbą całkowitą lub łańcuchem znakowym. Instrukcja iteracyjna for Składnia instrukcji: for zmienna=wyrazenie instrukcje 5

Pętla for służy do powtarzania wyszczególnionych instrukcji zawartych pomiędzy słowami for i określoną liczbę razy. Wyrażenie występuje na ogół w postaci wektora zapisanego w notacji dwukropkowej. k:n lub k:m:n w którym poszczególne kolumny mogą być zwykłymi skalarami, np. for i=:n instrukcje Za zmienną sterującą w pętli for często postawia się wektor zawierający kolejne liczby całkowite, ale może to być też wektor z dowolymi wartościami liczbowymi. W każdym obiegu pętli zmienna przyjmuje wartości odpowiadające elementom tego wektora a liczba obiegów pętli jest równa jego długości. Pętle for mogą wzajemnie zagnieżdżane. Przerwanie pętli for przed zakończeniem jej wykonania może być dokonane za pomocą break. W przypadku pętli zagnieżdżonych użycie break powoduje przejście do pętli nadrzędnej. Należy dodać, że wykonanie instrukcji for w MATLABie należy do stosunkowo czasochłonnych, dlatego wskazane jest, jeśli to możliwe, zastępowanie jej innymi operacjami. Przykładowo, należy wygenerować wektor złożony z kwadratów kolejnych liczb naturalnych. Program z wykorzystaniem pętli for: x=:6; y=zeros(,length(x)); for i = : length(x) y(i) = x(i)^; Zapis w postaci potęgowania tablicowego: y = x.^; jest bardziej czytelny a przede wszystkim znacznie szybszy w realizacji. Instrukcja iteracyjna while Składnia instrukcji: while wyrazenie_warunkowe instrukcje Instrukcje między while i są wykonywane dopóki wartość wyrazenie_warunkowe przyjmuje logiczne true, tzn. gdy macierz będąca wartością wyrazenie_warunkowe posiada wszystkie elementy niezerowe. Pętla while jest zatem wykonywana nieokreśloną z góry liczbę razy. Przerwanie pętli while umożliwia instrukcja break. Instrukcja pomocnicze return - powoduje opuszczenie danego skryptu lub funkcji, a następnie powrót do jego/jej wywołania (normalnie funkcja jest opuszczana po jej wykonaniu), break - przerywa działanie instrukcji iteracyjnych (for i while), 6

continue wywołane w obrębie instrukcji iteracyjnej opuszcza wykonanie pozostałych instrukcji i przechodzi do wykonania pierwszej instrukcji. Ćwiczenie laboratoryjne. Po zapoznaniu się z Wprowadzeniem należy kolejno otworzyć w edytorze, przeanalizować a następnie uruchomić skrypty lancuchy, petlafor, warif, pwhile, przerwij. Zadania laboratoryjne. Napisać program generujący dowolną macierz liczb losowych z zakresu od 0 do 0 i zliczający elementy: Dodatnie i ujemne, Mieszczące się w zakresie od a min do a max, przy czym wartości graniczne (w zakresie od 0 do 0) podaje się z klawiatury. Opracować wersję z wykorzystaniem operacji relacji (bez wykorzystania pętli for) oraz wersję z pętlą for. Do generowania macierzy wykorzystać funcję rand.. Napisać program przeliczający jednostki energii, J na Wh (dżule na watogodziny). Z klawiatury, za pomocą funkcji input, należy podać wartość i jednostkę wejściową oraz jednostkę wyjściową. W tab. 3 podano przeliczniki wybranych jednostek energii. Tab. 3. Przeliczniki jednostek energii Nazwa jednostki Symbol J cal Wh Dżul J 0,39 0,780-3 Kaloria cal 4,87,630-3 Watogodzina Wh 3600 860 3. Obliczyć funkcji sin x, cos x, sinh x, cosh x za pomocą formuł rekurencyjnych: n sin x uk Rn x k, x u x, uk uk, k,,, n ; 0 x kk 4 n cos x uk Rn x k, x u, uk uk, k,,, n ; 0 x kk 4 n sinh x uk Rn x k, x u x, uk uk, kk 7

n cosh x uk Rn x k 0 x u0, uk uk. kk Wykonać obliczenia dla x = 0,5, n = 5, 0, 50 i porównać uzyskane wyniki z wartościami funkcji otrzymanymi za pomocą funkcji bibliotecznych. Do wyświetlania wyników użyć polecenia format long. 8