Wprowadzanie danych pliki tekstowe ogólnego formatu

Podobne dokumenty
Algebra macierzy

Metody i analiza danych

Ćwiczenie 3. MatLab: Algebra liniowa. Rozwiązywanie układów liniowych

Podstawowe operacje na macierzach

Wprowadzenie do środowiska

MATLAB - laboratorium nr 1 wektory i macierze

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

Wprowadzenie do Scilab: macierze

Wykorzystanie programów komputerowych do obliczeń matematycznych

PODSTAWY AUTOMATYKI. MATLAB - komputerowe środowisko obliczeń naukowoinżynierskich - podstawowe operacje na liczbach i macierzach.

GNU Octave (w skrócie Octave) to rozbudowany program do analizy numerycznej.

Podstawowe operacje na macierzach, operacje we/wy

Obliczenia w programie MATLAB

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

15. Macierze. Definicja Macierzy. Definicja Delty Kroneckera. Definicja Macierzy Kwadratowej. Definicja Macierzy Jednostkowej

ANALIZA DANYCH I PROCESÓW. Mgr inż. Paweł Wojciech Herbin

Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki

Macierze. Rozdział Działania na macierzach

Zakłócenia w układach elektroenergetycznych LABORATORIUM

Metody numeryczne Laboratorium 2

Wprowadzenie do Scilab: macierze

1 Macierze i wyznaczniki

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm

Wprowadzenie do Scilab: macierze

; B = Wykonaj poniższe obliczenia: Mnożenia, transpozycje etc wykonuję programem i przepisuję wyniki. Mam nadzieję, że umiesz mnożyć macierze...

Teksty Liczby Formuły. Operatory. dr inż. Jarosław Forenc. Pasek narzędzi. Pasek narzędzi. (Atrybuty komórek)

dr inż. Jarosław Forenc

Adres komórki-nazwa kolumny i nazwa wiersza, na przecięciu których znajduje się komórka. B3- adres aktywnej komórki

MATEMATYKA I SEMESTR ALK (PwZ) 1. Sumy i sumy podwójne : Σ i ΣΣ

Ćwiczenie 1. Wprowadzenie do programu Octave

Ćwiczenie 1. Wprowadzenie do programu Octave

Laboratorium Komputerowego Wspomagania Analizy i Projektowania

Instalacja Pakietu R

Propozycja szczegółowego rozkładu materiału dla 4-letniego technikum, zakres podstawowy i rozszerzony. Klasa I (90 h)

83 Przekształcanie wykresów funkcji (cd.) 3

ABC Excel 2016 PL / Witold Wrotek. Gliwice, cop Spis treści

2.1. Postać algebraiczna liczb zespolonych Postać trygonometryczna liczb zespolonych... 26

Wprowadzenie do programu Mathcad 15 cz. 1

I. Podstawy języka C powtórka

Wprowadzenie do Pakietu R dla kierunku Zootechnika. Dr Magda Mielczarek Katedra Genetyki Uniwersytet Przyrodniczy we Wrocławiu

MACIERZE I WYZNACZNIKI

RACHUNEK MACIERZOWY. METODY OBLICZENIOWE Budownictwo, studia I stopnia, semestr 6. Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska

WPROWADZENIE DO ŚRODOWISKA SCILAB

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

Zanim zaczniemy GNU Octave

Przetwarzanie sygnałów

WYMAGANIA EDUKACYJNE Z MATEMATYKI KLASA III ZAKRES ROZSZERZONY (90 godz.) , x

WEKTORY I MACIERZE. Strona 1 z 11. Lekcja 7.

Ekoenergetyka Matematyka 1. Wykład 3.

Obliczenia Symboliczne

Kształcenie w zakresie podstawowym. Klasa 1

dr Mariusz Grządziel 15,29 kwietnia 2014 Przestrzeń R k R k = R R... R k razy Elementy R k wektory;

Najmniejszą możliwą macierzą jest macierz 1 x 2 lub 2 x 1 składająca się z dwóch przyległych komórek.

ROZKŁAD MATERIAŁU DO II KLASY LICEUM (ZAKRES ROZSZERZONY) A WYMAGANIA PODSTAWY PROGRAMOWEJ.

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Programy wykorzystywane do obliczeń

WYMAGANIA I KRYTERIA OCENIANIA Z MATEMATYKI W 3 LETNIM LICEUM OGÓLNOKSZTAŁCĄCYM

Definicja macierzy Typy i właściwości macierzy Działania na macierzach Wyznacznik macierzy Macierz odwrotna Normy macierzy RACHUNEK MACIERZOWY

Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup

WYMAGANIA EDUKACYJNE Z MATEMATYKI DLA KLASY 7SP. V. Obliczenia procentowe. Uczeń: 1) przedstawia część wielkości jako procent tej wielkości;

1. Arkusz kalkulacyjny (9) Za co lubimy arkusze kalkulacyjne (12) Excel 2013 (12) Podsumowanie (14) 2. Uruchamianie programu (15) Podsumowanie (18)

Wymagania edukacyjne z matematyki klasa IV technikum

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

Kier. MTR Programowanie w MATLABie Laboratorium

Matlab Składnia + podstawy programowania

WYRAŻENIA ALGEBRAICZNE

MATEMATYKA I SEMESTR ALK (PwZ) 1. Sumy i sumy podwójne : Σ i ΣΣ

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

Programowanie w języku Matlab

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

Analiza matematyczna i algebra liniowa Macierze

ROZKŁAD MATERIAŁU NAUCZANIA KLASA 2, ZAKRES PODSTAWOWY

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

do MATLABa podstawowe operacje na macierzach WYKŁAD Piotr Ciskowski

Pakiet edukacyjny do nauki przedmiotów ścisłych i kształtowania postaw przedsiębiorczych

Programowanie Delphi obliczenia, schematy blokowe

MATEMATYKA Z PLUSEM DLA KLASY VII W KONTEKŚCIE WYMAGAŃ PODSTAWY PROGRAMOWEJ. programowej dla klas IV-VI. programowej dla klas IV-VI.

WYMAGANIA Z WIEDZY I UMIEJĘTNOŚCI NA POSZCZEGÓLNE STOPNIE SZKOLNE DLA KLASY CZWARTEJ H. zakres rozszerzony. Wiadomości i umiejętności

Rozkład materiału: matematyka na poziomie rozszerzonym

ARKUSZ KALKULACYJNY komórka

MACIERZE. Sobiesiak Łukasz Wilczyńska Małgorzata

MATrix LABoratory. A C21 delta tvx444 omega_zero. hxx J23 aaa g4534 Fx_38

MATLAB wprowadzenie śycie jest zbyt krótkie, aby tracić czas na pisanie pętli!

Rozkład materiału a wymagania podstawy programowej dla I klasy czteroletniego liceum i pięcioletniego technikum. Zakres rozszerzony

MATeMAtyka klasa II poziom rozszerzony

1 Zbiory i działania na zbiorach.

MATeMAtyka zakres rozszerzony

UKŁADY RÓWNAŃ LINIOWYCH

Met Me ody numer yczne Wykład ykład Dr inż. Mic hał ha Łanc Łan zon Instyt Ins ut Elektr Elektr echn iki echn i Elektrot Elektr echn olo echn

Wymagania kl. 3. Zakres podstawowy i rozszerzony

1 Podstawy c++ w pigułce.

Wstęp do Programowania Lista 1

Przedmiotowy system oceniania wraz z określeniem wymagań edukacyjnych klasa druga zakres rozszerzony

FUNKCJE LICZBOWE. Na zbiorze X określona jest funkcja f : X Y gdy dowolnemu punktowi x X przyporządkowany jest punkt f(x) Y.

PORÓWNANIE TREŚCI ZAWARTYCH W OBOWIĄZUJĄCYCH STANDARDACH EGZAMINACYJNYCH Z TREŚCIAMI NOWEJ PODSTAWY PROGRAMOWEJ

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.

Ćwiczenie 3: Wprowadzenie do programu Matlab

A A A A A A A A A n n

Transkrypt:

MatLab część II 1

Wprowadzanie danych pliki tekstowe ogólnego formatu Do odczytu danych z plików tekstowych ogólnego (swobodnego) formatu zaleca się użycie funkcji textscan. Funkcja textscan nie zawiera procedury otwarcia i zamknięcia pliku, tak więc należy najpierw plik z danymi otworzyć do odczytu, nadając mu identyfikator (numer wskaźnika do pliku). Odczyt danych może być przeprowadzany wielokrotnie. Kolejny odczyt zaczyna się od miejsca, na które wskazuje wskaźnik. Po zakończeniu sekwencji odczytów, należy identyfikator zwolnić, zamykając plik. 2

Pliki tekstowe otwarcie Plik otwieramy poleceniem: fileid=fopen(nazwa_pliku) fileid jest nazwą zmiennej, w której przechowamy identyfikator pliku nazwa_pliku to łańcuch znakowy (string), w którym podajemy pełną (!) nazwę istniejącego pliku Przykłady: plk=fopen('dane.txt') dane1='d:\pomiary\stanowisko 1\dat20130424.txt' plk=fopen(dane1) Jeżeli funkcja fopen zwróci wartość 1, to jest to informacja, że plik nie został otwarty. Najczęściej powodem jest nieznalezienie pliku. 3

Pliki tekstowe identyfikator Po otwarciu pliku odwołujemy się do niego za pomocą identyfikatora Identyfikator jest numerem wskaźnika do pliku Plik można otworzyć wielokrotnie, wtedy każdy identyfikator wskazuje na inny wskaźnik W trakcie czytania można ponownie przesunąć wskaźnik do początku pliku poleceniem: rewind(fileid) Po zakończeniu pracy z plikiem należy zwolnić identyfikator wskaźnika pliku zamykając plik Plik zamykamy poleceniem: fclose(fileid) fileid jest oczywiście nazwą zmiennej, w której przechowujemy identyfikator pliku 4

Pliki tekstowe odczyt Składnia: C = textscan(fileid,format,n,par1,val1,, Parn,Valn) C zmienna, do której zapisujemy wynik odczytu (jest to wektor komórkowy) fileid identyfikator pliku format format danych czytanych jednorazowo; więcej: na następnym slajdzie! N liczba powtórzeń odczytu; jeśli jej brak, to plik czytany jest do końca Par1,Val1,, Parn,Valn seria parametrów funkcji i ich wartości, podanych parami: Parametr,Wartość 5

Funkcja textscan format Składnia argumentu format (podstawowe typy danych): argument ten podajemy w postaci łańcucha znakowego typy danych: %d liczba całkowita (ze znakiem); %f liczba zmiennoprzecinkowa; %s łańcuch znakowy; %c pojedynczy znak (także spacja!) Istnieją także inne typy danych; więcej: help textscan Należy również w formacie podać dane pomijane, używając składni %*, np. %*f Możemy także określić rozmiar danej, np. %3d lub %10.5f W przypadku pominięcia reszty danych w linii można użyć składni %*[^\n] Więcej o formacie: help textscan 6

Funkcja textscan parametry Parametry służą do zmiany domyślnych ustawień funkcji Niektóre parametry: HeaderLines określa liczbę wierszy pomijanych na początku czytania. Wartość parametru podajemy w postaci liczby całkowitej ExpChars określa znak symbolu potęgi w zapisie zmiennoprzecinkowym, tzn. typu 2.7e 3. Domyślną wartością jest łańcuch znakowy 'eedd'. Wartość parametru podajemy w postaci łańcucha znakowego, np. 'ExpChars',' 10^' dla liczb w postaci 2.7 10^ 3 Więcej o parametrach: help textscan 7

Funkcja textscan wartości Funkcja zwraca wynik w postaci wektora komórkowego o tylu kolumnach, ile było niepominiętych pól formatu Aby zorientować się w strukturze wektora komórkowego, można użyć funkcji celldisp. Przykład: celldisp(c) Jeżeli określone pole formatu było typu liczbowego, to odpowiednia komórka zawiera wektor kolumnowy odczytanych danych o długości równej argumentowi N funkcji textscan Jeżeli określone pole formatu było typu łańcucha znakowego, to odpowiednia komórka zawiera jednowymiarowy wektor komórkowy, o długości N Jeżeli wektor komórkowy zawiera dane tego samego typu, to można je połaczyć w jedną macierz za pomocą funkcji cell2mat. Przykład: cell2mat(c) 8

Wprowadzanie macierzy z linii poleceń Pojedyncza liczba (skalar): a=1.27 Wektor wierszowy: a=[1 2 3] Wektor kolumnowy: a=[1; 2; 3] (średnik oznacza przejście do następnego wiersza) Macierz: (kolejno wierszami): a=[1 2 3; 4 5 6; 7 8 9] Można też tak: a=[1 2 3 4 5 6 7 8 9] w rezultacie otrzymamy to samo 9

Wprowadzanie macierzy c.d. Sybkie tworzenie wektorów: a=1 :10 ans= 1 2 3 4 5 6 7 8 9 10 a=0:2 :10 ans= 0 2 4 6 8 10 składnia: a = początek : skok : koniec Można też macierze: a=[1 :10;2:2:20] (uwaga na rozmiary wierszy!) 10

Wprowadzanie danych funkcja input Funkcja input wyprowadza do okna poleceń komunikat i oczekuje na wprowadzenie danej: składnia: input('komunikat') komunikat musi być łańcuchem znakowym (stąd w apostrofach) lub zmienną łańcuchową (nazwę zmiennej podajemy bez apostrofów!) użycie w komunikacie sekwencji znaków \n oznacza polecenie przejścia do następnej linii składnia: input('komunikat','s') oznacza, że wprowadzana dana będzie czytana jako łańcuch znakowy 11

Indeksowanie macierzy Odwołanie się do pojedynczego elemenu macierzy: a(w,k), gdzie w oznacza numer wiersza, a k kolumny Przykład: a=[1 2 3 4;5 6 7 8; 9 10 11 12] a(2,3) ans= 7 Można też odwołać się do kilku elementów macierzy poprzez wektor indeksów: a(2,[1 3]) ans= 5 7 12

Indeksowanie macierzy c.d Odwołanie poprzez zakres: a(2,2:4) ans= 6 7 8 Można indeksować wszystkie kolumny czy wiersze: a(2,:) ans= 5 6 7 8 a(:,2:4) ans= 2 3 4 6 7 8 10 11 12 13

Modyfikacja macierzy poprzez indeksowanie Modyfikacja elementu macierzy: a(1,2)=1 ans= 1 1 3 4 5 6 7 8 9 10 11 12 Modyfikacja wiersza (kolumny) macierzy: a(2,:)=1:4 ans= 1 1 3 4 1 2 3 4 9 10 11 12 14

Modyfikacja macierzy poprzez indeksowanie c.d. Redukcja macierzy: a(:,4)=[] ans= 1 1 3 1 2 3 9 10 11 Permutacja macierzy: b=a(:,[2 3 1]) b= 1 3 1 2 3 1 10 11 9 15

Modyfikacja macierzy poprzez indeksowanie c.d. Redukcja macierzy: a(:,4)=[] ans= 1 1 3 1 2 3 9 10 11 Permutacja macierzy: b=a(:,[2 3 1]) b= 1 3 1 2 3 1 10 11 9 16

Modyfikacja macierzy funkcje specjalne fliplr(a) odbicie lustrzane w poziomie (lr=left-right) flipud(a) odbicie lustrzane w pionie (ud=up-down) rot90(a) obrót o 90 stopni (odwrotnie do ruchu wskazówek zegara) tril(a) ekstrakcja macierzy trójkątnej dolnej (l=lower) triu(a) ekstrakcja macierzy trójkątnej górnej (u=upper) diag(a) ekstrakcja elementów diagonalnych macierzy (a jak wyekstrachować elementy niediagonalne?) a' utworzenie macierzy transponowanej inv(a) utworzenie macierzy odwrotnej = a -1 17

Tworzenie macierzy specjalnych Tworzenie macierzy zer: zeros(w,k) w, k oznaczają odpowiednio liczbę wierszy i kolumn (podanie tylko jednej liczby tworzy macierz kwadratową) Tworzenie macierzy jedynek: ones(w,k) Tworzenie macierzy jednostkowej: eye(n) (co powstanie, gdy podamy różną liczbę wierszy i kolumn?) Tworzenie macierzy o rozkładzie losowym równomiernym: rand(w,k) Tworzenie macierzy o rozkładzie losowym normalnym: randn(w,k) 18

Operacje macierzowe Dodawanie i odejmowanie macierzowe: macierz-macierz: a+b oraz a-b (macierze muszą mieć te same wymiary) macierz-skalar: skalar dodawany do (odejmowany od) każdego elementu macierzy Mnożenie macierzowe: macierz-macierz: a*b (wewnętrzne wymiary macierzy muszą być równe) macierz-skalar: skalar przemnaża każdy element macierzy Dzielenie macierzowe: dzielenie prawostronne: a/b tożsame z a*inv(b) dzielenie lewostronne: a\b tożsame z inv(a)*b 19

Operacje macierzowe c.d. Potęgowanie: a^b (jeden element musi być skalarem, a drugi macierzą kwadratową): jeśli b jest liczbą całkowitą, to macierz a jest b-krotnie przemnażana przez siebie jeśli a jest skalarem, a macierz b jest diagonalna, to wynikiem jest macierz diagonalna z elementami równymi liczbie a podniesionej do potęgi wartości odpowiedniego elementu macierzy b w pozostałych przypadkach operacja potęgowania dokonywana jest w przestrzeni wektorowej, w której składnik macierzowy jest diagonalny (rozwiązywane jest zagadnienie wartości i wektorów własnych: A=VDV 1 ) wynik podawany jest jednak w przestrzeni pierwotnej: A B =VD B V 1 20

Operacje tablicowe Odróżnia się je od operacji macierzowych poprzez poprzedzenie ich kropką:.*./.\.^ Wykonywane są pomiędzy odpowiednimi elementami macierzy (element po elemencie) Macierze muszą mieć te same wymiary (za wyjątkiem oczywiście operacji na parze macierz-skalar) Dodawanie i odejmowanie tablicowe nie wymaga kropki, bo działa tak samo, jak w operacjach macierzowych W przypadku, gdy mogło by to doprowadzić do niejednoznacznej interpretacji polecenia, przed kropką należy postawić spację: 2.^a 21

Operacje relacyjne i logiczne Operacje na macierzach o tych samych wymiarach lub pomiędzy macierzą a skalarem wynikiem jest macierz tych samych wymiarów, której elementami są wartości logiczne (0 lub 1) wyniku operacji na odpowiednich elementach macierzy Operatory relacyjne: == równości ~= nierówności < mniejszości <= niewiększości > większości >= niemniejszości Operatory logiczne: & logiczne And logiczne Or ~ logiczne Not Elementy niezerowe macierzy traktowane są jak 1 (prawda) 22

Funkcje macierzowe det(a) wyznacznik macierzy trace(a) ślad macierzy (suma elementów diagonalnych) rank(a) rząd macierzy eig(a) wartości własne i wektory własne macierzy d=eig(a) d jest wektorem (kolumną) wartości własnych [V,D]=eig(A) V jest macierzą wektorów własnych (kolumny) D jest macierzą diagonalną wartości własnych A=VDV 1 23

Elementarne funkcje statystyczne Działają na seriach danych wzdłuż kolumn (standardowo) lub wierszy (trzeba to wymusić, np. min(a,2)) Wynikiem jest wektor o długości równej liczbie kolumn (wierszy) z elementami będącymi wartościami funkcji obliczonych na kolumnach (wierszach) min(a) element minimalny max(a) sum(a) prod(a) mean(a) std(a) var(a) element maksymalny suma elementów iloczyn elementów średnia odchylenie standardowe wariancja 24

Elementarne funkcje tablicowe Działają tablicowo, tzn. na elementach macierzy abs(a) wartość bezwzględna round(a) zaokrąglenie fix(a) zaokrąglenie ku 0 floor(a) zaokrąglenie ku ceil(a) zaokrąglenie ku + sqrt(a) rem(a) exp(a) log(a) log10(a) pierwiastek kwadratowy reszta z dzielenia funkcja wykładnicza logarytm naturalny logarytm dziesiętny 25

Elementarne funkcje tablicowe Działają tablicowo, tzn. na elementach macierzy abs(a) wartość bezwzględna round(a) zaokrąglenie fix(a) zaokrąglenie ku 0 floor(a) zaokrąglenie ku ceil(a) zaokrąglenie ku + sqrt(a) rem(a) exp(a) log(a) log10(a) pierwiastek kwadratowy reszta z dzielenia funkcja wykładnicza logarytm naturalny logarytm dziesiętny 26

Funkcje trygonometryczne i cyklomeryczne Działają na elementach macierzy (tablicowo) Argumentem (lub wynikiem) funkcji jest miara łukowa Funkcje trygonometryczne: sin(a) sinus Funkcje cyklometryczne: asin(a) arcus sinus cos(a) cosinus tan(a) tangens cot(a) cotangens acos(a)arcus cosinus atan(a)arcus tangens acot(a) arcus cotangens Odpowiedniki hiperboliczne tych funkcji mają w nazwie dodakowo literę h na końcu, np. sinh, acoth 27

Operacje symboliczne Operacje symboliczne wymagają zdefiniowania zmiennych symbolicznych dokonuje się tego za pomocą polecenia syms syms x n nadaje obiektom (zmiennym) x i n klasę obiektu symbolicznego więcej: help syms Dobrze jest operacje symboliczne rozbić na elementy prostsze (w miarę własnych umiejętności), gdyż MatLab nie radzi sobie zbyt dobrze ze zbyt skomplikowanymi funkcjami (wzorami) 28

Operacje symboliczne c.d. Obliczanie granicy ciągu: limit(f,x,a) znajduje granicę wyrażenia F (podajemy je bez apostrofów), dla zmiennej x (symbolicznej), w punkcie a (liczba, także ±Inf) pominięcie a oznacza a=0 pominięcie x uruchomi funkcję findsym(f), szukającą w wyrażeniu F zmiennej symbolicznej najbliższej 'x' limit(f,x,a,'left') oblicza granicę lewostronną limit(f,x,a,'right') oblicza granicę prawostronną UWAGA! W rezultacie możemy otrzymać wynik: Inf (oznacza + ), Inf czy NaN (brak granicy w danym punkcie) 29

Operacje symboliczne c.d. Obliczanie sumy ciągu: symsum(f,x,a,b) oblicza sumę ciągu o wyrazach F dla zmiennej x (symbolicznej), o wartościach od a (liczba) do b (liczba) pominięcie a i b oznacza sumę nieoznaczoną granice sumy mogą mieć wartość Inf, np. symsum(1/x^3,x,1,inf) wynik może być podany w postaci wyrażenia czy funkcji, np. 1/2*Psi(2,x) czy zeta(3) 30

Operacje symboliczne c.d. Obliczanie różniczki wyrażenia: diff(f,n,x) oblicza n-tą pochodną wyrażenia F po zmiennej x (symbolicznej) pominięcie n oznacza pierwszą pochodną Obliczanie całki wyrażenia: int(f,x,a,b) oblicza całkę wyrażenia F dla zmiennej x (symbolicznej), w granicach od a (liczba) do b (liczba) pominięcie a i b oznacza całkę nieoznaczoną granice całki mogą mieć wartość Inf, np. int(1/x^3,x,1,inf) wynik może mieć wartość nieskończoną, np. Inf 31