|
|
Möglichkeiten einer asc Datei |
|
Pat87 |
Forum-Anfänger
|
|
Beiträge: 21
|
|
|
|
Anmeldedatum: 01.09.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2016b
|
|
|
|
|
|
Verfasst am: 02.11.2018, 10:28
Titel: Möglichkeiten einer asc Datei
|
|
|
|
|
Hallo
ich hab ein Projekt an der Hochschule, Datenanalyse, und soll rausfinden, ob man das einlesen und verarbeiten einer speziellen asc Datei mit Matlab automatisieren kann.
Ich komme eher aus der Berechnung/Modellierung, hab null Ahnung von Datenverarbeitung und deswegen wollte ich hier mal fragen, was machbar ist, toller Job
Vorerst lässt sich die asc Datei nicht verändern, so dass Matlab an die asc Datei angepasst werden muss. Das macht das Programmieren sehr aufwendig (für mich).
Die Messdateien sind sehr ähnlich aufgebaut, also reicht ein Skript und ich gebe gerne 1,2,3,... Bier aus (HH). Als Beispiel habe ich eine Textdatei im Anhang, genau so ist die asc Datei aufgebaut, nur mehr Messdaten (Zeilen, Spalten).
Für Excel sind die Messdaten später zu groß (1GB und größer), deswegen Machtbarkeit mit Matlab testen.
1. Aufgabe
Zeile Kanalname sind die Namen der Messungen, Matlab soll diese lesen, erstmal nur lesen und der Anwender wählt dann später aus, welche Kanäle er haben will, um Zeit zu sparen ohne die gesamte Datei zu importieren.
Mit welchem Befehl arbeitet man da? Hab im Skript 5 mal fgetl stehen und die gesamte Zeile als Variable ok, ne Schleife wäre auch möglich, aber Stil hat das nicht wirklich oder?^^
Gibt es ne Möglichkeit mit Matlab präzise zu sagen, gehe zur 5. Zeile, das erste Wort/ die ersten 9 Zeichen ist der Name des Structures, in dieser Zeile sind alle Buchstaben zwischen '...' jeweils eine Variable und wird in der Structure eingeführt?
Wenn es nicht gehen sollte oder für einen Laien zu aufwendig ist, muss halt ein anderes Programmes her, zumal ich nur etwas mehr als ein Monat Zeit habe
Vielen vielen Dank schon mal im Voraus
Grüße
PS sollte ich bei der Suche was übersehen haben, gerne einen Link ranhängen
Beschreibung: |
Das Original ist eine .asc Datei |
|
Download |
Dateiname: |
Test.txt |
Dateigröße: |
539 Bytes |
Heruntergeladen: |
237 mal |
|
|
|
|
|
Lokdog |
Forum-Fortgeschrittener
|
|
Beiträge: 96
|
|
|
|
Anmeldedatum: 07.04.16
|
|
|
|
Wohnort: Heilbronn
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.11.2018, 10:40
Titel:
|
|
Moin,
ja das sollte ziemlich gut mit:
https://de.mathworks.com/help/matlab/ref/regexp.html
gehen. Ist meiner Meinung nach nicht ganz einfach diese function zu verstehen.
Aber im Endeffekt kann man hiermit z.B. suche nach zeile XYZ, Gehe Dort 5 zeichen weiter, lösche leerzeichen usw.
Viel Erfolg
|
|
|
Pat87 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 21
|
|
|
|
Anmeldedatum: 01.09.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2016b
|
|
|
|
|
|
Verfasst am: 02.11.2018, 11:29
Titel:
|
|
Moin,
ja, das ist schon mal ne Hilfe zum reinlesen, Danke!
Und ja, ich hab erstmal nur Bahnhof verstanden ^^
Werde wohl am WE bisschen rumspielen
Ich muss aber vorher mit fopen arbeiten oder?
Und dann? textscan oder sowas?
aber dann lädt er doch die ganze Datei oder? Geht ja auch um Zeitsparen, da später auch mehrere Dateien gleichzeitig mit jeweils GBs ausgewertet werden sollen und davon nur bestimmte Werte. Oder ist das was anderes als importdata?
ich starte hier wirklich mit 0
|
|
|
Lokdog |
Forum-Fortgeschrittener
|
|
Beiträge: 96
|
|
|
|
Anmeldedatum: 07.04.16
|
|
|
|
Wohnort: Heilbronn
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.11.2018, 11:32
Titel:
|
|
Ja, also meiner Meinung nach, kannst du den Inhalt einer Datei nur lesen, wenn sie "geöffnet" ist, bzw. sie als Variable vorhanden.
Kannst du nicht die Dateiname soweit verändern, dass du nach diesen suchst und nicht in die Datei selbst musst?
|
|
|
Pat87 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 21
|
|
|
|
Anmeldedatum: 01.09.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2016b
|
|
|
|
|
|
Verfasst am: 02.11.2018, 11:48
Titel:
|
|
Verstehe den letzten Satz nicht so ganz ^^
Der/die Dateiname/n ist/sind fest und jeder Anwender nennt das ganze ja anders.
Ständig den Dateinamen zu verändern, kostet zu viel Zeit.
Später gibt es den Befehl uigetdir, mehrere Datein einzuladen, hab da was im Forum gelesen und schon getestet. Alle Datein im Ordner A einladen. Aber soweit bin ich noch lange nicht.
|
|
|
Lokdog |
Forum-Fortgeschrittener
|
|
Beiträge: 96
|
|
|
|
Anmeldedatum: 07.04.16
|
|
|
|
Wohnort: Heilbronn
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.11.2018, 13:22
Titel:
|
|
Okay,
dann wirst du vermutlich nicht drum herum kommen, die Dateien einzulesen und schauen was drin steht.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 02.11.2018, 22:47
Titel:
|
|
Hallo,
natürlich muss man eine Datei einlesen, um den Inhalt zu sehen.
Es ist aber z.B. kein Problem, die Datei mit
fopen
zu öffnen, mit
fgetl
ein paar Zeilen einzulesen, dann z.B. mit
strfind
nach [ zu suchen und das folgende mit
strsplit
(Punkt als Trennzeichen) zu trennen. Reguläre Ausdrücke sind da m.E. ein Overkill.
Zitat: |
muss halt ein anderes Programmes her |
Mit was soll das denn einfacher gehen?
Zitat: |
zumal ich nur etwas mehr als ein Monat Zeit habe |
Das Einlesen der Daten sollte da nur den kleinsten Teil davon benötigen.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Pat87 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 21
|
|
|
|
Anmeldedatum: 01.09.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2016b
|
|
|
|
|
|
Verfasst am: 05.11.2018, 09:26
Titel:
|
|
Hallo Harald,
mit
strsplit
hast du mich schon ein Stück voran gebracht,
den Befehl hab ich gesucht oder übersehen
Allerdings müssten die Wörter mit einem Apostroph getrennt werden, in der Doku wird das nirgends aufgelistet, lediglich sämtliche andere Zeichen.
Gibt es die Möglichkeit nicht? Weil manuell das Matlab zu sagen, funktioniert nicht, er kann mit sowas
nichts anfangen ^^
Weil sonst müsste ich für jedes Wort immer das erste und letzte Zeichen löschen.
Klar geht das auch, aber warum kompliziert, wenn es vielleicht leichter geht
Danke!
Grüße
|
|
|
Pat87 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 21
|
|
|
|
Anmeldedatum: 01.09.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2016b
|
|
|
|
|
|
Verfasst am: 05.11.2018, 09:51
Titel:
|
|
Oder gibt es ein Befehl, das sämtliche Zeichen löscht?
Weil ich ja am Anfang und am Ende ja noch mehr Zeichen habe.
Ich brauche ja nur die Wörter
Ahhh mit
geht das...
Vielen Dank nochmal
|
|
|
Pat87 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 21
|
|
|
|
Anmeldedatum: 01.09.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2016b
|
|
|
|
|
|
Verfasst am: 05.11.2018, 10:28
Titel:
|
|
Also so habe ich die erste Aufgabe gelöst.
oder hat jemand ne elegantere Idee?
Grüße
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 05.11.2018, 10:36
Titel:
|
|
Hallo,
etwas kompakter:
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Pat87 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 21
|
|
|
|
Anmeldedatum: 01.09.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2016b
|
|
|
|
|
|
Verfasst am: 05.11.2018, 13:35
Titel:
|
|
Vielen, vielen Dank Harald
hat prima funktioniert. Damit habe ich alle Zeilen Probleme gelöst
Jetzt fehlt nur noch mein Spaltenproblem, um die Messdaten zu erhalten.
Würdest Du da mit einer while-Schleife arbeiten und Zeile für Zeile einlesen bis die eingelesenen Zeilen leer sind (Ende)? Dabei lade ich ja Daten rein, die ich eventuell nicht will und Zeit kostet.
Oder gibt es ein Befehl direkt die x. Spalten einlesen?
Danke schon mal
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 05.11.2018, 13:52
Titel:
|
|
Hallo,
welches Spaltenproblem? Dass die Anzahl der Spalten nicht vorab bekannt ist?
Nun, nach dem Einlesen der Überschriften ist sie ja bekannt.
Wenn du bestimmte Spalten nicht willst, kannst du für diese Spalten %*f statt %f verwenden.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
|
|
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 - 2025
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.
|
|