Kier. MTR Programowanie w MATLABie Laboratorium

Podobne dokumenty
INFORMATYKA Studia Niestacjonarne Elektrotechnika

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

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

MATLAB Z3. Rafał Woźniak. Warsaw, Faculty of Economic Sciences, University of Warsaw

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Zanim zaczniemy GNU Octave

Pliki. Informacje ogólne. Obsługa plików w języku C

1. Wprowadzanie danych z klawiatury funkcja scanf

Programowanie w językach wysokiego poziomu

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

Pliki. Operacje na plikach w Pascalu

Laboratorium Algorytmy Obliczeniowe. Lab. 9 Prezentacja wyników w Matlabie

7 Przygotował: mgr inż. Maciej Lasota

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

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

Rozpoczynamy import Kreator uruchamiamy przyciskiem Z tekstu, znajdującym się na karcie Dane, w grupie Dane zewnętrzne.

Pliki. Informacje ogólne. Obsługa plików w języku C

Metody numeryczne Laboratorium 2

Informatyka, Ćwiczenie Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu

Kurs walut. Specyfikacja projektu. Marek Zając

Autor: dr inż. Katarzyna Rudnik

Ćwiczenie 2 Wczytywanie i zapisywanie do plików tekstowych

Program wykonujący operację na plikach powinien zachować schemat działania zapewniający poprawną pracę:

Argumenty wywołania programu, operacje na plikach

Import danych z plików CSV

Ćwiczenie 4. Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1.

Wykład PASCAL - Pliki tekstowe

Struktura pliku wejściowego ipko biznes przelewy zagraniczne (MT103 / CSV)

Atrybuty bloki z atrybutami, wyciągi atrybutów.

AKADEMIA MORSKA W SZCZECINIE WI-ET / IIT / ZTT. Instrukcja do zajęc laboratoryjnych nr 1 AUTOMATYZACJA I ROBOTYZACJA PROCESÓW PRODUKCYJNYCH

3. Opracować program kodowania/dekodowania pliku tekstowego. Algorytm kodowania:

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Moduł Handlowo-Magazynowy Przeprowadzanie inwentaryzacji z użyciem kolektorów danych

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

ISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje

Funkcje zawarte w bibliotece < io.h >

Formatowane (tekstowe) wejście/wyjście. Binarne wejście/wyjście.

System Inwentaryzacji Systemów Teleinformatycznych

I. Podstawy języka C powtórka

utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,

PRZYKŁADY OPERACJI PLIKOWYCH z wykorzystaniem biblioteki <stdio.h>

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Laboratorium 10: Maszyna stanów

1 Przygotował: mgr inż. Maciej Lasota

Kolumna Zeszyt Komórka Wiersz Tabela arkusza Zakładki arkuszy

Wprowadzania liczb. Aby uniknąć wprowadzania ułamka jako daty, należy poprzedzać ułamki cyfrą 0 (zero); np.: wpisać 0 1/2

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Funkcje zawarte w bibliotece < io.h >

Instrukcja użytkownika

Memeo Instant Backup Podręcznik Szybkiego Startu

JĘZYK SHELL JEST PEŁNYM JĘZYKIEM PROGRAMOWANIA

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

Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1. Kraków 2013

Import pliku MPW do systemu plusbank24

Dokumentacja Systemu INSEMIK II Podręcznik użytkownika część V Badania buhaja INSEMIK II. Podręcznik użytkownika Moduł: Badania buhaja

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

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

Instrukcja obsługi DHL KONWERTER 1.6

Operacje na plikach. Informatyka. Standardowe strumienie wejścia i wyjścia

Programowanie 3 - Funkcje, pliki i klasy

instrukcja użytkownika terminala ARGOX PA-20 SYSTEMY AUTOMATYCZNEJ IDENTYFIKACJI

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

EXCEL TABELE PRZESTAWNE

1. Wprowadzenie do oprogramowania gretl. Wprowadzanie danych.

Podstawy i języki programowania

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40

Laboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

4. Wyrzuć wyjątek jeśli zmienna ist nie istnieje bloki: try, catch i wyrzucanie wyjątku

OPERACJE WEJŚCIA / WYJŚCIA. wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout)

Instrukcja użytkownika. Eksport dokumentów do systemu Comarch EDI Wersja

NOWY SZABLON IMPORTU PLIKÓW

Generator CABRILLO program Marka SP7DQR (Instrukcja obsługi)

Języki programowania imperatywnego

ARKUSZ KALKULACYJNY komórka

Instrukcja obsługi Multiconverter 2.0

CitiDirect EB Portal Eksport

CitiDirect BE Portal Eksport

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2015

EGZAMIN MATURALNY Z INFORMATYKI

C++. Æwiczenia zaawansowane

Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 5. Karol Tarnowski A-1 p.

ISO/ANSI C dostęp do plików ISO/ANSI C. ISO/ANSI C dostęp do plików. ISO/ANSI C dostęp do plików. ISO/ANSI C dostęp do plików

Jak eksportować dane uczniów do programu HERMES?

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

Pliki wykład 2. Dorota Pylak

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 5. Karol Tarnowski A-1 p.

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

Budowa i oprogramowanie komputerowych systemów sterowania. Laboratorium 4. Metody wymiany danych w systemach automatyki DDE

Biblioteka standardowa - operacje wejścia/wyjścia

UMOWY INSTRUKCJA STANOWISKOWA

Tabele przestawne tabelą przestawną. Sprzedawcy, Kwartały, Wartości. Dane/Raport tabeli przestawnej i wykresu przestawnego.

GEO-SYSTEM Sp. z o.o Warszawa, ul. Kubickiego 9/5, tel./fax ,

int tab[5]; tab[1]; ciągły obszar pamięci, w którym umieszczone są elementy tego samego typu macierz [ ] - dwuargumentowy operator indeksowania

Ćwiczenie: JavaScript Cookies (3x45 minut)

#include <stdio.h> void main(void) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

Program współpracuje z : Windows XP, Powerdraft 2004, v8, XM, Microstation 2004, v8, XM.

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

Napisz program wypisujący na standardowym wyjściu następujący napis: Napis zawierający różne dziwne znaczki // \ \$ &%.

Instytut Fizyki Politechniki Łódzkiej Laboratorium Metod Analizy Danych Doświadczalnych Ćwiczenie 3 Generator liczb losowych o rozkładzie Rayleigha.

Transkrypt:

Kier. MTR Programowanie w MATLABie Laboratorium Ćw. 7 Import i eksport danych. Współpraca z plikami zewnętrznymi 1. Wprowadzenie Eksport i import danych w MATLABie Na zakładce menu HOME w sekcji VARIABLE dostępna jest opcja Import Data (można ją także uruchomić poleceniem uiimport). Dzięki niej dostępny jest specjalny kreator, za pomocą którego możliwy jest import danych z plików zewnętrznych do przestrzeni roboczej MATLABa. Obsługiwane są m. in. pliki tekstowe, skoroszyty MSExcel oraz pliki graficzne, audio i video. Opcja Save Workspace pozwala na zapisanie w binarnym pliku *.mat wszystkich zmiennych aktualnie znajdujących się w przestrzeni roboczej. Pliki *.mat zawierają skompresowane, binarne dane pozwalające na późniejsze odtworzenie zawartości zmiennych z pełną precyzją. Zapis i odczyt danych z wykorzystaniem poleceń save i load Istniejące w przestrzeni roboczej MATLABa zmienne są z niej usuwane po wydaniu polecenia clear all bądź po zakończeniu działania programu. Chcąc zachować wszystkie zmienne znajdujące się aktualnie w przestrzeni roboczej należy użyć polecenia save nazwa_pliku w postaci funkcyjnej: save ( nazwa_pliku ) Zmienne zapisywane są na dysku w pliku o rozszerzeniu.mat. Pominięcie nazwy pliku, czyli save powoduje, że wszystkie zmienne są zapamiętane w pliku matlab.mat, utworzonym w aktualnym katalogu. Format plików mat stosowany w najnowszych wersjach programu jest inny od tego, który być stosowany w starszych wersjach. Chcąc zapisać dane w formacie akceptowalnym przez starsze wersje należy użyć odpowiedniego parametru ('-v7.3', '-v7', '- v6', '-v4'). Jeżeli mają być zapamiętane jedynie wybrane zmienne, to należy po nazwie pliku dodać nazwy tych zmiennych save nazwa_pliku zmienna1 zmienna2 zmienna3 save ( nazwa_pliku, zmienna1, zmienna2, zmienna3 ) Chcąc zapisać wartości wybranych zmiennych w pliku tekstowym ASCII należy zastosować polecenie save nazwa_pliku zmienna1 zmienna2 zmienna3 ascii save ( nazwa_pliku, zmienna1, zmienna2, zmienna3, -ascii ) Spowoduje to zapamiętanie zmiennych w pliku tekstowym ASCII przy wykorzystaniu 8- cyfrowego zapisu liczb. Zapisane zmienne tworzą tablice liczb umieszczonych jedna pod drugą, a nazwy zmiennych są pomijane. Możliwe jest także dopisanie zmiennej do już istniejącego pliku. Operację taką można wykonać stosując polecenie save nazwa_pliku zmienna append 1

save ( nazwa_pliku, zmienna, -append ) Wczytanie danych z pliku dyskowego do pamięci roboczej MATLABa realizowane jest poleceniem load nazwa_pliku load ( nazwa_pliku ) Jeśli nazwa pliku zostanie pominięta load to dane zostaną odczytane z pliku matlab.mat. Za pomocą polecenia load ( nazwa_pliku, zmienna1, zmienna2 ) można z pliku *.mat wczytać do przestrzeni roboczej tylko wybrane zmienne, bez konieczności ładowania wszystkich zmiennych zapisanych w tym pliku. Polecenie load nazwa.rozszerzenie zm = load ( nazwa.rozszerzenie ) wczytuje zmienne zapamiętane w pliku tekstowym o podanej nazwie z rozszerzeniem. Wczytane dane zostaną zapamiętane w macierzy o nazwie takiej jak nazwa pliku jak w drugim przypadku podstawione pod zmienną zm. Przykładowo polecenie load dane.dat powoduje utworzenie w przestrzeni roboczej zmiennej od nazwie dane i podstawienie pod nią danych odczytanych z pliku. Polecenie load nazwa_pliku acsii umożliwia wczytanie macierzy z pliku tekstowego, którego nazwa nie zawiera rozszerzenia (podanie samej nazwy pliku bez opcji ascii spowodowałoby poszukiwanie pliku binarnego *.mat). Praca z formatowanymi plikami tekstowymi Otwarcie i zamknięcie pliku W praktyce często występuje problem wymiany danych między programami za pośrednictwem odpowiednio sformatowanych plików tekstowych. Przed wykonaniem operacji plik musi być otwarty, a po ich zakończeniu zamknięty. Otwarcie pliku dokonuje się za pomocą polecenia fid = fopen(nazwa_pliku, sposób_otwarcia) gdzie nazwa_pliku - nazwa otwieranego pliku; jeśli jego lokalizacja jest inna niż roboczy katalog, należy podać pełną ścieżkę dostępu, sposób_otwarcia jest jednym z następujących łańcuchów znakowych określających sposób otwarcia pliku: 'r' - tylko do odczytu (domyślny), 'w' - tylko do zapisu; jeśli plik istnieje jego dotychczasowa zawartość zostanie utracona, jeśli nie istnieje, zostanie utworzony nowy plik, 'a' - tak jak w, z tym, że nowe dane dołączane są do danych już zapisanych w pliku, 'r+' - do odczytu i zapisu bez możliwości utworzenia pliku, jeśli plik nie istnieje, 'w+' - do odczytu i zapisu z możliwością utworzenia pliku, jeśli plik nie istnieje; jeśli plik istnieje jego dotychczasowa zawartość zostanie utracona, 2

'a+' - tak jak w+, z tym, że nowe dane dołączane są do danych już zapisanych w pliku. Domyślnie pliki są otwierane w trybie binarnym. Aby otworzyć plik tekstowy należy dodać 't' do łańcucha sposób_otwarcia, np. 'rt' - czytanie pliku tekstowego 'wt' - zapisywanie do pliku tekstowego Należy pamiętać, że otwarcie istniejącego pliku w trybie do zapisu spowoduje utratę jego dotychczasowej zawartości. Gdy zmienna fid przyjmuje wartość 1, oznacza to, że otwarcie nie powiodło się. Przy wywołaniu [fid, komunikat] = fopen(nazwa_pliku, sposób_otwarcia) zmienna komunikat zwraca opis błędu. Operację zamknięcia pliku realizuje polecenie status = fclose(fid) Zmienna fid będąca parametrem fclose oznacza identyfikator pliku, którego wartość określono za pomocą fopen. Pomyślne wykonanie polecenie powoduje, że zmienna status = 0, w przeciwnym wypadku status = 1. Polecenie status = fclose('all') służy do zamknięcia wszystkich aktualnie otwartych plików oprócz tych, które posiadają fid równe 0, 1 2. Zapis do formatowanego pliku tekstowego Do zapisywania danych do sformatowanego pliku tekstowego służy znana z języka C funkcja ilosc = fprintf(fid, format, A,...) Dane, którymi są zawartości zmiennych umieszczonych na liście parametrów (A, ) zapisywane są do pliku tekstowego o identyfikatorze fid (zwróconego przez wcześniejsze wywołanie fopen) zgodnie ze specyfikacją podaną w format. Funkcja pod zmienną ilosc zwraca liczbę poprawnie zapisanych na dysku bajtów. Parametr format jest łańcuchem zgodnym ze specyfikacją znaną z języka C i w ogólnym przypadku składa się z następujących elementów: %flaga szerokość pola.liczba_wyprowadzanych_znaków(liczb) typ_argumentu) flaga może być znakiem: o (minus): napis jest wyrównywany lewostronnie w polu wyjściowym, uzupełniony z prawej strony spacjami, o + (plus): napis liczbowy jest zawsze poprzedzony znakiem plus albo minus, o spacja oznacza, że napis liczbowy jest poprzedzony znakiem minus albo spacją, stosownie do wartości argumentu, o 0 uzupełnienie zerami pól, gdy zapis liczby jest krótszy niż szerokość pola, szerokość_pola jest minimalną szerokością pola, w którym zostanie umieszczony napis; szerokość pola może być określona liczbowo albo za pomocą znaku * (szerokość pola określi wówczas kolejny argument typu całkowitego), liczba_wyprowadzonych_znaków określa minimalną liczbę cyfr po przecinku. Jeżeli wystąpi *, to dokładność jest określana przez następny argument funkcji, który musi być typu całkowitego. typ_argumentu jest jednoliterowym kodem konwersji, określającym sposób utworzenia napisu stanowiącego pole pliku. Wybrane kody konwersji zawiera tab. 1. 3

Tab. 1. Kody konwersji funkcji fprinft( ) Kod konwersji Typ argumentu Opis %d int liczba dziesiętna %i int liczba dziesiętna %o int liczba ósemkowa bez znaku %u int liczba dziesiętna bez znaku %x int liczba szesnastkowa bez znaku %X int jw. (wielkie litery A-F) %f double liczba stałopozycyjna %e double liczba zmiennopozycyjna %E double liczba zmiennopozycyjna %g double liczba zmiennopozycyjna (bez dodatkowych zer) %G double liczba zmiennopozycyjna (bez dodatkowych zer) %c char znak %s string łańcuch znakowy Ponadto w łańcuchu formatującym mogą wystąpić znaki \n nowy wiersz \r powrót karetki \t tabulacja \b cofnięcie \f nowa strona Jeśli pominie się w funkcji fprintf zmienną z identyfikatorem pliku, wtedy tekst sformatowany zostanie wyświetlony na ekranie (tj. w oknie poleceń), jako standardowym urządzeniu wyjścia. Jeśli zmienna na liście parametrów funkcji fprintf jest wektorem macierzą jest ona wywoływana tyle razy, aby wyświetlić wszystkie elementy. W przypadku macierzy elementy wyświetlane są kolumna po kolumnie. Odczyt danych z formatowanego pliku tekstowego Do odczytu danych ze sformatowanego, otwartego pliku tekstowego służy polecenie C = textscan(fid, spec_format) gdzie: C tablica komórkowa z odczytanymi danymi, fid identyfikator zmiennej plikowej, format specyfikacja formatu odczytywanych danych. Jeśli znana jest liczba powtórzeń odczytów n, wtedy można użyć polecenia: C = textscan(fid, spec_format, n) Funkcja posiada także możliwość podawania dodatkowych parametrów przetwarzania tekstu za pomocą C = textscan(fid, spec_format, nazwa1, wartosc1, nazwa2, wartosc2, ) Przykładowe nazwy parametrów i ich znaczenie podano w tab. 2. 4

Tab. 2. Wybrane parametry funkcji textscan Nazwa pola HeaderLines 'Delimiter' CommentStyle 'EmptyValue' Opis Liczba początkowych linii nagłówków danych pomijanych przy przetwarzaniu Określenie znaku separatora danych Znak komentarza tekst po nim umieszczony zostanie pominięty przy przetwarzaniu Określenie domyślnej wartości w przypadku obecności pustego pola danych Wymiana danych między MATLABem i MSExcel Dane w skoroszytach MSExcel mogą być importowane do za pomocą polecenia: zm = xlsread( nazwa_pliku, nazwa_arkusza, zakres ) gdzie: zm nazwa zmiennej w przestrzeni roboczej przechowującej dane ze skoroszytu, nazwa_pliku nazwa pliku skoroszytu; nazwa_arkusza nazwa arkusza w skoroszycie; zakres adres zakresu komórek w arkuszy, który należy importować. Eksport danych z przestrzeni roboczej MATLABa do MSExcel realizuje polecenie xlswrite( nazwa_pliku, nazwa_zmiennej) gdzie: nazwa_pliku nazwa pliku skoroszytu, nazwa_zmiennej nazwa eksportowanej zmiennej. Polecenie to można także uzupełnić o nazwę arkusza i zakres do którego dane mają zostać zapisane. Wymiana danych z poziomu MSExcel wymaga instalacji dodatku Spreadsheet Link. 2. Ćwiczenie laboratoryjne Przeanalizować działanie funkcji save i load na przykładzie oraz m-pliku frkw. 3. Zadania laboratoryjne 1. Zapisać do wynikowego, sformatowanego pliku tekstowego wartości miejsc zerowych wielomianu, którego współczynniki odczytywane są z wejściowego pliku tekstowego (plik tekstowy ze współczynnikami utworzyć wpierw np. za pomocą Notatnika). Do znalezienia pierwiastków użyć funkcji roots(p), gdzie p jest wektorem współczynników wielomianu (sposób jej użycia jest podany w systemie pomocy). Uwzględnić przypadek, gdy pierwiastkami są liczbami zespolonymi - wtedy oddzielnie zapisać do pliku ich część rzeczywistą i urojoną. W pliku wynikowym powinny znaleźć się także współczynniki wielomianu. 2. Napisać program, który odczytane dane liczbowe zapisane w pliku tekstowym wyniki.dat, a następnie przedstawić je na wykresie wraz z podaniem wartości minimalnej, maksymalnej i średniej w zbiorze danych. Użyć funkcji textscan( ) z odpowiednimi parametrami. 3. Napisać program generujący wektor n całkowitych liczb losowych z rozkładzie równomiernym w zakresie 0-100. Do pliku tekstowego zapisać dane dotyczące ilości liczb w przedziałach [0; 20), [20; 40), [40; 60), [60; 80), [80; 100] oraz wartości tych liczb. Przykładowa zawartość pliku wynikowego: Wektor: [ 12 45 9 91 38] Przedz. Ilosc Liczby 0 20 2 12, 9 20 40 1 38 40 60 1 45 60 80 0 80 100 1 91 5