Anwendungssoftware III (MATLAB)



Ähnliche Dokumente
Anwendungssoftware III (MATLAB)

10 Lesen und Schreiben von Dateien

Artikel Schnittstelle über CSV

Anwendungssoftware III (MATLAB)

ARAkoll 2013 Dokumentation. Datum:

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Ein Tool zum Konvertieren von Pegasus Mail Adressbüchern und Verteilerlisten in Novell Groupwise Adressbücher.

Erstellen der Barcode-Etiketten:

ipin CSV-Datenimport (Mac OS X)

Speichern. Speichern unter

Kleines Handbuch zur Fotogalerie der Pixel AG

Leitfaden #1a. "zanox Publisher-Statistik" (next generation)

iphone-kontakte zu Exchange übertragen

ecall sms & fax-portal

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Programm GArtenlisten. Computerhinweise

Bilder zum Upload verkleinern

Import und Export von Übergängern

Erstellen einer PostScript-Datei unter Windows XP

Dokumentation FileZilla. Servermanager

DATEV pro: Datenübernahme FIBU

Export von Kontaktdaten aus FDISK und Import in Outlook

TYPO3-Publikations-Daten aus TYPO3 exportieren und in Citavi importieren

EINFACHES HAUSHALT- KASSABUCH

Professionelle Seminare im Bereich MS-Office

Kurzanleitung. Toolbox. T_xls_Import

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Konvertieren von Settingsdateien

Anleitung über den Umgang mit Schildern

Leitfaden zum Umgang mit Mautaufstellung und Einzelfahrtennachweis

Outlook-Daten komplett sichern

Tutorial -

Mallux.de CSV-Import Schnittstellen von Mallux.de. Beschreibung für den Import von CSV-Dateien. Stand: 01. Januar von Mallux.

6.3 Serienbriefe über Microsoft Excel und Word

Informatik I Tutorial

Datenübernahme aus Fremdprogrammen

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Über die Internetseite Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

ebanking Business Edition

Import von Daten im Rechnungswesen

Kurzeinführung Excel2App. Version 1.0.0

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

LineQuest-Leitfaden LineQuest Dialog-Portal. Generieren der LineQuest-Auswertungsdatei

Simple SMS SMS Gateway

LEITFADEN -ZUSTELLUNG

Lexware: Datenübernahme FIBU

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

! " # $ " % & Nicki Wruck worldwidewruck

Arbeiten mit UMLed und Delphi

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.

Handbuch zum Excel Formular Editor

Text-Zahlen-Formatieren

Beispiel Shop-Eintrag Ladenlokal & Online-Shop im Verzeichnis 1

Text Formatierung in Excel

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version Deutsch

Benutzung der Avid Liquid Edition Schnittplätze an der Universität Innsbruck

e-banking-business Edition Bestehende Lastschriftvorlagen in SEPA-Lastschriftvorlagen umwandeln

Handbuch ECDL 2003 Professional Modul 2: Tabellenkalkulation Vorlagen benutzen und ändern

Weiterverarbeitung Leseranfragen

Flyer, Sharepics usw. mit LibreOffice oder OpenOffice erstellen

Etikettendruck mit Works 7.0

einrichtung in den kaufmännischen Programmen der WISO Reihe

Benutzer-Handbuch. Import / Export von Adressen

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

Bedienungsanleitung. Stand: Copyright 2011 by GEVITAS GmbH

Es gibt situationsabhängig verschiedene Varianten zum Speichern der Dokumente. Word bietet im Menü DATEI unterschiedliche Optionen an.

Datensicherung. Beschreibung der Datensicherung

Das Modul Hilfsmittel ermöglicht den Anwender die Verwaltung der internen Nachrichten, Notizen, Kontakte, Aufgaben und Termine.

Arbeiten mit dem Outlook Add-In

Import von Daten aus Word nach KlasseDozent

Erstellen von x-y-diagrammen in OpenOffice.calc

SANDBOXIE konfigurieren

teischl.com Software Design & Services e.u. office@teischl.com

1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung

Vorlagen im Online Banking. Anlegen von Vorlagen

Datenübernahme bei Umstieg von T-Online Banking 6 auf Quicken 2010 so wird s gemacht!

BUILDNOTES TOPAL FINANZBUCHHALTUNG

Einkaufslisten verwalten. Tipps & Tricks

Tevalo Handbuch v 1.1 vom

Bereich METIS (Texte im Internet) Zählmarkenrecherche

SEPA-Lastschriftverfahren für ebanking-business-edition

Importdatei EGID/EDID mit Excel erstellen und bearbeiten

ODBC-Treiber Programmübersicht

ACDSee Pro 2. ACDSee Pro 2 Tutorials: Übertragung von Fotos (+ Datenbank) auf einen anderen Computer. Über Metadaten und die Datenbank

AutoCAD Dienstprogramm zur Lizenzübertragung

Erstellen eines Screenshot

Empfehlungen zur Nutzung der CD zum Buch: Klee & Wiemann: Beweglichkeit und Dehnfähigkeit. Schorndorf: Hofmann,

Handbuch B4000+ Preset Manager

Bei der Installation folgen Sie den Anweisungen des Installations- Assistenten.

Sage Treuhandaustausch onesage Version 2.2

Beheben von verlorenen Verknüpfungen

SICHERN DER FAVORITEN

Die Textvorlagen in Microsoft WORD und LibreOffice Writer

Hilfe zur Dokumentenverwaltung

Kapitel 3 Frames Seite 1

Transkript:

Anwendungssoftware III (MATLAB) VI Eingaben und Ausgaben in MATLAB Michael Liedlgruber Fachbereich Computerwissenschaften Universität Salzburg Sommersemester 2014 M. Liedlgruber Anwendungssoftware III (MATLAB) SS 2014 1 / 32

Eingaben im Eingaben im Command Window Ausgaben im Command Window Um eine interaktive Eingabe des Benutzers in einem Skript zu erlauben, bietet MATLAB die Funktioninput. Die Funktion wird folgendermaßen aufgerufen: value = input( Eingabeprompt ); Standardmäßig erwartetinput die Eingabe eines gültigen MATLAB-Ausdrucks. Das Ergebnis dieses Ausdrucks wird dann der Variable value zugewiesen wird. Es ist also möglich, folgende Eingaben zu tätigen: einfache Werte Vektoren und Matrizen Funktionsaufrufe Um dem Benutzer die Eingabe einer Zeichenkette (String) zu ermöglichen, muss als zweiter Parameter s angegeben werden: value = input( Eingabeprompt, s ); M. Liedlgruber Anwendungssoftware III (MATLAB) SS 2014 2 / 32

Eingaben im Eingaben im Command Window Ausgaben im Command Window Ein Beispiel zu Input >> t = input( Titel:, s ); a = input( Amplitude: ); x = input( x-werte: ); y = a * input( f(x): ); plot(y); title(t); Titel: Sinus-Plot % Eingabe des Titels <ENTER> Amplitude: 10 % Eingabe von 10 <ENTER> x-werte: -pi:0.01:pi % Vektoreingabe <ENTER> f(x): sin(x) % Angabe der Sinusfunktion <ENTER> Das Ergebnis ist der folgende Plot: 10 Sinus-Plot 0-10 0 100 200 300 400 500 600 700 M. Liedlgruber Anwendungssoftware III (MATLAB) SS 2014 3 / 32

Ausgaben im Eingaben im Command Window Ausgaben im Command Window Wir wissen bereits: der Wert einer Variable kann ausgegeben werden, indem man den Namen der Variable im eingibt: >> A = [1 2 3]; >> A A = 1 2 3 Es gibt in MATLAB jedoch noch weitere Möglichkeiten, um Ausgaben zu erreichen. Vor allem, wenn die Ausgabe kompakter oder besser formatiert sein soll, bieten sich folgende Funktionen an: disp erzeugt eine einfache und kompakte Ausgabe. fprintf erzeugt eine Ausgabe, welche aufgrund vieler Formatierungsoptionen genau an individuelle Bedürfnisse angepasst werden kann. M. Liedlgruber Anwendungssoftware III (MATLAB) SS 2014 4 / 32

Ausgaben im Eingaben im Command Window Ausgaben im Command Window Dasdisp-Kommando Um einfache Strings auszugeben, übergibt mandisp den gewünschten String: >> disp( Dies ist ein Test-String ); Dies ist ein Test-String Der Wert von Variablen wird ausgegeben, indem man die entsprechende Variable als Parameter verwendet: >> x = 1:5; >> x % normale Ausgabe x = % Variablenname wird ausgegeben 1 2 3 4 5 >> disp(x); % kompakte Ausgabe - ohne Variablenname 1 2 3 4 5 >> disp(randn(3, 3)); % Ausgabe bei einer Matrix -1.0265-0.2318-1.9804-0.8697-0.7515-1.2938 0.8542-1.0367 0.0822 Wir sehen:disp erzeugt eine kompakte Ausgabe (ohne Variablennamen). M. Liedlgruber Anwendungssoftware III (MATLAB) SS 2014 5 / 32

Ausgaben im Eingaben im Command Window Ausgaben im Command Window Dasfprintf-Kommando Wir haben gesehen, dass die Funktiondisp eine Ausgabe im Command Window erzeugt. Die Funktionfprintf erlaubt im Gegensatz zudisp zusätzlich eine exakte Formatierung der Ausgabe. Generelle Form des Aufrufs vonfprintf: fprintf(formatstring, Variablen,...) Wir sehen Es gibt einen Formatstring. Dieser gibt an wie die Ausgabe der angegebenen Variablen zu erfolgen hat (enthält üblicherweise einen oder mehrere Formatanweisungen). Es werden mehrere Variablen unterstützt. Hinweis: die Funktionsprintf funktioniert ähnlich wiefprintf, gibt jedoch nichts im aus, sondern gibt einen String zurück, welcher die formatierte Ausgabe enthält (siehedoc sprintf). M. Liedlgruber Anwendungssoftware III (MATLAB) SS 2014 6 / 32

Ausgaben im Eingaben im Command Window Ausgaben im Command Window Beispiele für dasfprintf-kommando Ausgabe einer einfachen Meldung ohne Variablen (das Zeichen\n wird dabei verwendet, um nach der Ausgabe in die nächste Zeile zu springen): >> fprintf( Eine Testmeldung\n ); Eine Testmeldung Ausgabe einer Variable mit Text. Das%-Zeichen signalisiert den Beginn einer Formatanweisung: >> fprintf( Wert von pi: %4.2f\n, pi); Wert von pi: 3.14 Die Formatanweisung in diesem Beispiel bedeutet, dass eine Gleitkommazahl (f) mit einer Gesamtbreite von4zeichen und2nachkommastellen ausgegeben werden soll. M. Liedlgruber Anwendungssoftware III (MATLAB) SS 2014 7 / 32

Ausgaben im Eingaben im Command Window Ausgaben im Command Window Wie bereits angedeutet, können mitfprintf auch mehrere Variablen auf einmal ausgegeben werden. Dazu wird für jede Variable eine eigene Formatanweisung benötigt: >> fprintf( Kosinus von %4.2f = %8.4f\n, pi, cos(pi)); Kosinus von 3.14 = -1.0000 Dieses Beispiel gibtπ auf zwei Nachkommastellen (Gesamtbreite 4) aus. Zudem wird der Wertcos(π) = 1 mit einer Gesamtbreite von 8 Zeichen (4 Nachkommastellen) ausgegeben. Zudem können auch Vektoren oder Matrizen ausgegeben werden: >> A = [1 2 3; 4 5 6]; >> fprintf( a = %2.2f b = %2.2f\n, A); a = 1.00 b = 4.00 % Spalte 1 von A a = 2.00 b = 5.00 % Spalte 2 von A a = 3.00 b = 6.00 % Spalte 3 von A Die Möglichkeiten zur Formatierung sind vielfältig. Nähere Details dazu sind in der MATLAB-Hilfe zu finden (doc fprintf). M. Liedlgruber Anwendungssoftware III (MATLAB) SS 2014 8 / 32

Binärdateien Manchmal kann es sinnvoll oder notwendig sein, Daten in einer Datei zu speichern oder Daten aus Dateien zu lesen. Dabei unterscheidet man prinzipiell zwischen folgenden Dateitypen: Binärdateien Um Daten aus Dateien zu lesen oder in Dateien zu schreiben bietet MATLAB unter anderem folgende Funktionen: Funktion Lesen Schreiben Text Binär fscanf fprintf fread fwrite Weitere Funktionen für das findet man in der MATLAB-Hilfe (doc iofun). M. Liedlgruber Anwendungssoftware III (MATLAB) SS 2014 9 / 32

Binärdateien Um mit einer Datei arbeiten zu können, muss diese zuerst geöffnet werden. Dies geschieht mit dem Kommandofopen: file_handle = fopen(dateiname, Öffnungsmodus); Ist beim Öffnen kein Fehler aufgetreten, enthältfile_handle einen Verweis auf die geöffnete Datei, welcher dann für die Lese- und Schreibbefehle benötigt wird (bei einem Fehler enthältfile_handle den Wert -1). Der Öffnungsmodus ist ein String und gibt an wie eine Datei geöffnet werden soll: Öfnungsmodus wt rt wb rb Beschreibung Textdatei zum Schreiben öffnen Textdatei zum Lesen öffnen Binärdatei zum Schreiben öffnen Binärdatei zum Lesen öffnen Es gibt auch noch andere Modi um Dateien zu öffnen. Dazu mehr in der MATLAB-Hilfe (doc fopen). M. Liedlgruber Anwendungssoftware III (MATLAB) SS 2014 10 / 32

Binärdateien Ist die Arbeit an einer Datei abgeschlossen, sollte diese unbedingt korrekt geschlossen werden. Dies geschieht mit Hilfe des Befehlsfclose und dem beifopen zurückgelieferten Verweis auf die offene Datei: fclose(file_handle); M. Liedlgruber Anwendungssoftware III (MATLAB) SS 2014 11 / 32

Arbeiten mit Binärdateien Das Arbeiten mit hat folgende Vorteile: Daten können formatiert gespeichert werden die Dateien können mit jedem Texteditor geöffnet und geändert werden Folgendes Beispiel >> x = 1:10; y = x.^2; >> f = fopen( test.txt, wt ); % Schreibmodus (Text) >> fprintf(f, %2.f %3.f\n, [x; y]); >> fclose(f); erzeugt folgende Textdatei: 1 1 2 4 3 9... 8 64 9 81 10 100 M. Liedlgruber Anwendungssoftware III (MATLAB) SS 2014 12 / 32

Arbeiten mit Binärdateien Um eine Textdatei einzulesen, verwenden wir den Befehlfscanf: >> f = fopen( test.txt, rt ); % Lesemodus (Text) >> A = fscanf(f, %f %f ); % Format einer Zeile in der Datei >> fclose(f); >> x = A(1:2:end) x = 1 2 3 4 5 6 7 8 9 10 >> y = A(2:2:end) y = 1 4 9 16 25 36 49 64 81 100 Hinweis: MATLAB liest die Werte zeilenweise aus der Datei ein und gibt das Ergebnis als einen langen Spaltenvektor zurück. Alternativ kann man die Größe der Daten explizit beifscanf angeben: >> f = fopen( test.txt, rt ); >> A = fscanf(f, %f %f, [2, Inf]); >> fclose(f); [2, Inf] gibt an, dass bis zum Ende der Datei gelesen werden soll (Inf) und die Rückgabematrix 2 Zeilen haben soll (da 2 Spalten in Datei). M. Liedlgruber Anwendungssoftware III (MATLAB) SS 2014 13 / 32

Arbeiten mit Binärdateien Binärdateien Wie bereits erwähnt, kann MATLAB aber auch mit Binärdateien umgehen. Diese haben gegenüber folgende Vorteile: Daten werden platzsparender gespeichert Das Lesen und Schreiben ist effizienter (schneller) Im folgenden Beispiel wird eine binäre Datei erzeugt, welche die ersten 1000 Quadratzahlen beinhaltet: >> f = fopen( test.bin, wb ); % Schreibmodus (Binär) >> x = (1:1000).^2; >> fwrite(f, x, float32 ); >> fclose(f); Hinweis: das letzte Argument beifwrite gibt an, mit welcher Präzision die Daten gespeichert werden sollen (in diesem Fallfloat32, also der Datentyp single). Weitere mögliche Präzisionen sind zum Beispielint8,int16,int32, float64 unddouble (siehedoc fread). M. Liedlgruber Anwendungssoftware III (MATLAB) SS 2014 14 / 32

Arbeiten mit Binärdateien Binärdateien Um binäre Daten aus einer Datei auszulesen, stellt MATLAB den Befehlfread zur Verfügung. Wie in folgendem Beispiel ersichtlich, kann auch beifread eine Präzision angegeben werden: >> f = fopen( test.bin, rb ); >> x = fread(f, float32 ); >> fclose(f); >> length(x) ans = 1000 % wir haben 1000 Zahlen eingelesen Wichtig Wurden Daten mittelsfwrite in eine Datei geschrieben, muss beifread die gleiche Präzision verwendet werden. Ansonsten sind die eingelesenen Daten üblicherweise unbrauchbar. M. Liedlgruber Anwendungssoftware III (MATLAB) SS 2014 15 / 32

Formatierung für einen Import Formatierung Das Importieren von Daten in MATLAB kann eine sehr komplizierte Angelegenheit sein. Dies hängt sehr stark von den zu importierenden Daten ab. Beherzigt man folgende Ratschläge, wird es auf jeden Fall etwas leichter, Daten in MATLAB zu importieren: eine zu importierende Datei sollte nur Zahlen beinhalten (bis auf Spaltenbezeichner in der ersten Zeile). um Daten vor einem Import zu manipulieren, sollte ein anderes Programm (z.b. MS Excel, OpenOffice, LibreOffice) verwendet werden. die Daten sollten nur Werte für eine Variable pro Spalte beinhalten. um Datumswerte zu importieren, sollten diese vor dem Import in ein numerisches Format umgewandelt werden (Vermeidung von Konvertierungproblemen bei Daten). M. Liedlgruber Anwendungssoftware III (MATLAB) SS 2014 16 / 32

importieren Der einfachste Weg, Daten auf robuste Art und Weise in MATLAB zu importieren, ist der Import von. Formatierung Dazu müssen in Excel ein paar Punkte beachtet werden: nur eine Variable pro Spalte Spaltenbeschriftungen verwenden (werden dann als Variablennamen verwendet) nur Zahlen verwenden (speziell bei Datumswerten) Um Datumswerte in Zahlen umzuwandeln geht man in Excel wie folgt vor (in OpenOffice und LibreOffice funktioniert dies ähnlich): 1. Datumswerte auswählen 2. Rechtsklick auf die Auswahl 3. Im Kontextmenü Format wählen 4. Beim Format auf Zahl umstellen M. Liedlgruber Anwendungssoftware III (MATLAB) SS 2014 17 / 32

importieren Formatierung über den Import Wizard importieren Der Import von ist in MATLAB am einfachsten über den Workspace Browser (Button Import Data ) zu bewerkstelligen. Alternativ kann der Import auch über den Current Directory Browser erfolgen: 1. in das Verzeichnis wechseln, welches die Excel-Datei beinhaltet 2. Rechtsklick auf die Excel-Datei 3. im Menü Import Data... wählen In beiden Fällen, erscheint nach der Dateiauswahl der Import Wizard. Im Folgenden importieren wir eine Excel-Datei (temperatures.xls), welche einen fiktiven Temperaturverlauf für den Jänner 2012 beinhaltet. Dazu haben wir folgende Spalten: Datum (bereits in eine Zahl konvertiert) Mittlere Tagestemperatur Tagestiefstwerte Tageshöchstwerte M. Liedlgruber Anwendungssoftware III (MATLAB) SS 2014 18 / 32

importieren Wichtig: um die einzelnen Spalten als einzelne Variablen zu importieren (Vektoren), muss die entsprechende Option im Dialog ausgewählt werden. Formatierung Nach erfolgreichem Import sehen wir die Variablen im Workspace Browser. M. Liedlgruber Anwendungssoftware III (MATLAB) SS 2014 19 / 32

importieren Formatierung Abschließend müssen wir nun noch die Datumswerte korrigieren. MATLAB und Excel interpretieren numerische Datumswerte unterschiedlich: MATLAB: Anzahl der Tage seit dem 1. Jänner 0000 Excel: Anzahl der Tage seit dem 1. Jänner 1900 Daher müssen wir die Datumswerte noch korrigieren. Dazu addieren wir den 31. Dezember 1899 zu den importierten Datumswerten indate (mit Hilfe der Funktion datenum): Date = Date + datenum( 30DEC1899 ); Hinweis: da die Angabe der Tage beidatenum bei 0 startet, geben wir30 statt 31 ein. Um die korrigierten Zahlenwerte als Datumswerte auszugeben, gibt es die MATLAB-Funktion datestr: >> datestr(date(1)) ans = 01-Jan-2012 % Korrektur erfolgreich! M. Liedlgruber Anwendungssoftware III (MATLAB) SS 2014 20 / 32

importieren Formatierung Import von über die Kommandozeile Alternativ zum Import Wizard, kann man auch den Befehlxlsread verwenden, um einzulesen. Für unsere Testdateitemperatures.xls: data = xlsread( temperatures.xls ); Dieses Kommando liest den Inhalt des ersten Tabellenblattes in die Matrixdata. Um ein Arbeitsblatt mit dem NamenArbeitsblattname einzulesen, gibt man folgendes ein: data = xlsread( temperatures.xls, Arbeitsblattname ); Fürxlsread gibt es noch zahlreiche Optionen (z.b. Importbereich wählen oder Arbeitsblatt wählen). Eine ausführliche Beschreibung dieser Möglichkeiten ist in der MATLAB-Hilfe zu finden (doc xlsread). Zusätzliche Informationen zu einer Excel-Datei (z.b. Namen von Arbeitsmappen) können mit Hilfe des Kommandosxlsfinfo ausgegeben werden (siehe doc xlsfinfo). M. Liedlgruber Anwendungssoftware III (MATLAB) SS 2014 21 / 32

importieren Formatierung (Comma Separated Values) sind, welche Werte enthalten, die durch ein bestimmtes Spaltentrennzeichen getrennt sind (üblicherweise, oder;). Die Temperaturdaten aus Excel könnten im CSV-Format zum Beispiel wie folgt aussehen: 40909,1.1,0.2401943739,1.9598056261 40910,-3.2,-4.0770937883,-2.3229062117 40911,-3.1,-3.99331443,-2.20668557 40912,0.1,-0.8084478088,1.0084478088... Hinweis: für einen Import von in MATLAB, muss als Dezimaltrennzeichen immer ein Punkt verwendet werden. Um eine CSV-Datei in MATLAB zu importieren gibt es wieder zwei Möglichkeiten: über den Import Wizard über den Befehlcsvread M. Liedlgruber Anwendungssoftware III (MATLAB) SS 2014 22 / 32

importieren Formatierung Import einer CSV-Datei mit dem Import Wizard Die Auswahl der CSV-Datei funktioniert wie beim Import von. Im Import-Wizard kann man das gewünschte Trennzeichen angeben: Ist alles korrekt eingestellt, kann man nach einem Klick auf Next, den Namen der Variable(n) angeben, in welche die Daten importiert werden sollen. Enthält die CSV-Datei Spaltenbeschriftungen, kann automatisch für jede Spalte ein Vektor angelegt werden. Ansonsten wird eine Matrix erzeugt. M. Liedlgruber Anwendungssoftware III (MATLAB) SS 2014 23 / 32

importieren Formatierung Import einer CSV-Datei mitcsvread Mit dem Befehlcsvread können von der Konsole aus importiert werden. Wichtig Im Gegensatz zum Import Wizard wird in diesem Fall ein Beistrich als Spaltentrennzeichen vorausgesetzt. Zudem darf die CSV-Datei keine Spaltenbeschriftungen enthalten. Die Dateitemperature.csv wird folgenderweise importiert: >> A = csvread( temperatures.csv ); Will man den Import bei einer bestimmten Zelle (Position) starten, erreicht man dies mittels: >> A = csvread( temperatures.csv, 4, 3); In diesem Beispiel beginnt der Import mit der 5. Zeile und der 4. Spalte (Indizes starten bei 0!). M. Liedlgruber Anwendungssoftware III (MATLAB) SS 2014 24 / 32

importieren Formatierung Zudem kann man auch einen Bereich angeben, welcher importiert werden soll. Zum Beispiel: >> A = csvread( temperatures.csv, 0, 2, [0 2 7 3]); In diesem Beispiel werden die 3. und 4. Spalte und die 1. Zeile bis zur 8. Zeile importiert (Indizes wieder 0-basierend). Der zweite und der dritte Parameter (Startzelle) sollten dabei dem Startpunkt des angegebenen Bereichs entsprechen (in unserem Beispiel [0 2]). Hinweis: für mehr Kontrolle über den Import existiert noch das Kommando dlmread (siehedoc dlmread). M. Liedlgruber Anwendungssoftware III (MATLAB) SS 2014 25 / 32

importieren Formatierung Liegen Daten in einer Textdatei vor, kann der Import auch mit Hilfe des Kommandos textread erfolgen: >> A = textread( temperatures.txt ); Dieses Kommando liest den Inhalt der Datei in die MatrixAein. Das Format der Textdatei sollte dabei so einfach wie möglich gehalten werden (in unserem Beispiel wurde ein Leerzeichen als Spaltentrenner benutzt): 40909 1.1 0.2401943739 1.9598056261 40910-3.2-4.0770937883-2.3229062117 40911-3.1-3.99331443-2.20668557 40912 0.1-0.8084478088 1.0084478088... Das Kommandotextread unterstützt aber noch viele andere Formate (über eine Formatanweisung). Nähere Informationen dazu findet man in der MATLAB-Hilfedoc textread. M. Liedlgruber Anwendungssoftware III (MATLAB) SS 2014 26 / 32

MATLAB importieren Formatierung MATLAB hat auch ein eigenes Dateiformat um Daten zu speichern (). beinhalten sowohl den Namen als auch den Wert von Variablen. Es ist daher nicht notwendig, beim Laden eines einen Variablennamen anzugeben. Geladen wird ein mat-file mit dem Befehlload. Das folgende Beispiel lädt die Dateitest.mat und erstellt alle darin enthaltenen Variablen im Workspace: >> load test.mat Sind in der zu ladenden Datei z.b. die VariablenX,YundZenthalten, kann man auch nur bestimmte Variablen laden. Zum Beispiel: >> load test.mat Y Z Diese Anweisung erstellt nur die VariablenYundZaus der Dateitest.mat im Workspace. M. Liedlgruber Anwendungssoftware III (MATLAB) SS 2014 27 / 32

importieren Formatierung MATLAB bietet auch Funktionen, um zu laden. Dabei unterstützt MATLAB verschiedene Dateiformate, z.b. JPEG, PNG, BMP und TIFF. Will man ein Bild laden, verwendet man dazu den Befehlimread (Bild wird in eine Matrix geladen): >> I = imread( lena.jpg ); % bild laden >> imshow(i); % bild anzeigen Das Ergebnis ist folgende Figure: imshow ist einer von mehreren MATLAB-Befehlen, um ein Bild anzuzeigen (siehedoc imagesc,doc image unddoc imshow). M. Liedlgruber Anwendungssoftware III (MATLAB) SS 2014 28 / 32

exportieren Viele der Dateiformate, welche MATLAB importieren kann, können in MATLAB auch exportiert werden. Wir haben gesehen, dass man mit dem Kommandoxlsread einlesen kann. Um bestehende Daten in eine Excel-Datei zu exportieren, verwendet man den Befehlxlswrite. >> A = rand(100, 100); >> xlswrite( random.xls, A); Wie beixlsread, gibt es auch beixlswrite diverse Optionen. Eine ausführliche Beschreibung dieser Möglichkeiten ist in der MATLAB-Hilfe zu finden (doc xlswrite). Wichtig:xlswrite funktioniert nur unter Windows (mit einer Excel-Installation). Ist kein Excel installiert oder verwendet man Linux, versucht MATLAB, eine CSV-Datei zu erzeugen. M. Liedlgruber Anwendungssoftware III (MATLAB) SS 2014 29 / 32

exportieren Auch für gibt es ein Gegenstück zur Funktioncsvread nämlich die Funktioncsvwrite. Das folgende Beispiel zeigt, wie man Daten in eine CSV-Datei exportiert: >> A = rand(100, 100); >> csvwrite( random.csv, A); Auszug aus der resultierenden Datei: 0.99859,0.014034,0.59533,0.65084,0.45868,... 0.59436,0.66201,0.67865,0.29553,0.73434,...... Zu beachten: die Spalten sind immer durch ein Komma getrennt. es ist nur eine Präzision von fünf Nachkommastellen möglich (für mehr Präzision siehedoc dlmwrite). M. Liedlgruber Anwendungssoftware III (MATLAB) SS 2014 30 / 32

MATLAB exportieren Natürlich kann man auch Daten in ein mat-file speichern. Dazu wird der Befehl save verwendet. Dabei gilt zu beachten, dass das Kommandosave standardmäßig den kompletten Workspace in die angegebene Datei speichert: >> A = rand(100, 100); >> B = rand(100, 100); >> save test.mat Die Dateitest.mat enthält nun die VariablenAundB. Will man nur bestimmte Variablen speichern, muss man zusätzlich den Namen der zu speichernden Variable angeben. Zum Beispiel: >> A = rand(100, 100); >> B = rand(100, 100); >> C = rand(100, 100); >> save test.mat A C M. Liedlgruber Anwendungssoftware III (MATLAB) SS 2014 31 / 32

exportieren Um in MATLAB zu speichern, gibt es den Befehlimwrite. >> X = peaks(256)*30; >> imwrite(uint8(abs(x)), peaks.png, png ); Der erste Parameter gibt die Variable an, welche als Bild gespeichert werden soll (eine Matrix). Der dritte Parameter gibt das Dateiformat für das Bild an. Das Ergebnis ist folgendes Graustufenbild: Informationen zu weiteren Parametern und Optionen beiimwrite sind in der MATLAB-Hilfe zu finden (doc imwrite). M. Liedlgruber Anwendungssoftware III (MATLAB) SS 2014 32 / 32