|
|
Einstieg in die Programmierung Textfiles einlesen |
|
Anz_im_Sand |
Forum-Newbie
|
|
Beiträge: 7
|
|
|
|
Anmeldedatum: 22.01.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.01.2018, 19:53
Titel: Einstieg in die Programmierung Textfiles einlesen
|
|
|
|
|
Hallo zusammen!
Ich beginne grade mit Matlab zu arbeiten.
Ich hab angefangen mit Grafiken und einfachen Rechnungen und möchte nun gerne mit einem Skript starten.
Folgendes habe ich mir überlegt um meine "Matlab-Können" zu verbessern:
Ich habe immer eine Anzahl an Messdaten, die ich mithilfe eines Skriptes zusammenfassen möchte. Diese Messdaten habe ich in ASCI Datein.
Nun möchte ich zunächst ein Skript schreiben, welches mir die Messdaten alle in einem Matrix in Matlab überträgt. Dabei ist anzumerken, dass die erste Spalte (also meine vorgegebenen x-Werte) immer gleich sind.
Beispiel ich habe 5 Messreihen und ich möchte eine Matrix haben mit x y1 y2 y3 y4 y5.
Ich hoffe ich könnte es verständlich erklären.
Ich hab mich auch schon eingelesen, dass ich zunächst das File öffnen muss. Dabei krieg ich jedoch immer eine Fehlermeldung:
Number of columns on line 258 of ASCII file test.txt must be the same as previous lines.
Kann man diesen Fehler umgehen? Ich gehe davon aus er entsteht dadurch, dass in meiner Datei folgendermaßen gezählt wird: 0 0,5 1 1,5
Und sich somit die Stellen hinter dem Komma unterscheiden? - Kann das sein?
Auch bin ich mir nicht sicher ob ich erst mit der Schleife oder dem Öffnen des Files beginen muss.
Über Hilfestellung würde ich mich sehr freuen, da ich grade beginne mich tiefer mit Matlab beschäftige und ich es eigentlich sehr interessant find.
Schönen Abend euch!
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.432
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 22.01.2018, 22:22
Titel:
|
|
Hallo,
Zitat: |
Ich hab mich auch schon eingelesen, dass ich zunächst das File öffnen muss. Dabei krieg ich jedoch immer eine Fehlermeldung:
Number of columns on line 258 of ASCII file test.txt must be the same as previous lines. |
Wie versuchst du die Datei zu öffnen?
Wird in der Datei tatsächlich Komma als Dezimaltrennzeichen verwendet? MATLAB erwartet normalerweise Punkt.
Was passiert denn in Zeile 258 besonderes?
Am einfachsten ist der Datenimport an sich, wenn man die Datei rechtsklickt und dann auf Import Data geht. Dort kann man interaktiv alle Einstellungen machen und bei Klick auf das Dropdown unter dem grünen Haken auch Code aus den Einstellungen generieren.
Grüße,
Harald
|
|
|
Anz_im_Sand |
Themenstarter
Forum-Newbie
|
|
Beiträge: 7
|
|
|
|
Anmeldedatum: 22.01.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.01.2018, 09:14
Titel:
|
|
Hallo Harald,
ich habe noch mal ein neues File mit Daten erstellt, da ich den Fehler nicht gefunden habe. Nun taucht dieser Fehler nicht mehr auf.
Ich wollte mir gerne ein Skript erstellen mit dem ich insgesamt immer 16 Datensätze in eine Matrix eintrage.
Da ich diese 16 Datensätzte ca. 50 mal am Tag generiere wollte ich das ganze automatisch erstellen und nicht jedes mal interaktiv über den Import Data Button machen.
Bis jetzt habe ich folgdes Programm:
Den Stern im Pfad habe ich genommen damit ich alle 16 Dateien öffnen kann. Ich glaube ich muss aber noch eine for Schleife einbauen.
Bei der fileid habe ich den Modus r verwendet da in meiner ASCI Datei die Werte Tabstopp getrennt sind.
Hier ein Ausschnitt aus meinen Daten:
400 393,5
401 392,9
402 391,4
403 386,4
404 378,2
405 369
406 360,8
Vielen Dank schon mal für deine schnelle Antwort
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.432
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 23.01.2018, 09:53
Titel:
|
|
Hallo,
wenn du alle Dateien nacheinander öffnen und einlesen willst, kannst du
datastore
und
readall
verwenden und dir so die Schleife schenken.
Zitat: |
nicht jedes mal interaktiv über den Import Data Button machen. |
Wie gesagt: man kann daraus ein Skript erstellen.
Grüße,
Harald
|
|
|
Anz_im_Sand |
Themenstarter
Forum-Newbie
|
|
Beiträge: 7
|
|
|
|
Anmeldedatum: 22.01.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.01.2018, 19:24
Titel:
|
|
Ich habe mich noch einmal mit meinem Code auseinander gesetzt.
Ich würde schon ganz gerne mit einer Schleife arbeiten. Ich hab mir vorgenommen dies hinzubekommen und nun ist der Ehrgeiz groß
Soweit habe ich mein Skript umgeschrieben, jetzt kann ich zumindest einzelne Datensätze öffnen.
Nun möchte ich gerne das er nicht nur die eine Messreihe Spec_0 einliest in diese Matrix sondern auch alle anderen Dateien, eben über eine Schleife.
Ich würde jetzt im Pfad als Filename einfach Spec_0 durch * ersetzen. Damit eben alle Dateien in dem Ordner ausgelesen werden.
Wo wäre es nun sinnvoll mit der Schleife anzufangen?
Viele Grüße
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.432
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 23.01.2018, 20:20
Titel:
|
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|