|
|
|
einzelne Werte aus Datei auslesen |
|
| rennur |

Forum-Anfänger
|
 |
Beiträge: 18
|
 |
|
 |
Anmeldedatum: 13.02.12
|
 |
|
 |
Wohnort: Berlin
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 01.03.2012, 13:24
Titel: einzelne Werte aus Datei auslesen
|
 |
| |
 |
|
Hallo,
ich habe das Problem, dass ich eine recht kurze Datei habe, aus der ich aber maximal 10 Werte benötige.
Ich habe schon verschiedene Befehle probiert, um die Datei zu öffnen und in einem Array abzulegen, bisher leider ohne Erfolg. Ich muss dazu sagen, dass ich mit MATLAB noch nie extra Dateien bearbeitet habe.
Ich stelle mir also die Frage, ob ich nicht eine Datei öffnen kann, dann mit dem Cursor an eine ganz bestimmte Stelle springen und exakt diesen Wert auslesen kann? Das würde ich 10 mal machen und hätte meine Werte?
Alternativ könnte ich auch die ersten 6 Zeilen wegschneiden (oder einfach mit dem Cursor überspringen?), alles einlesen, in einer Matrix abspeichern und die Werte gezielt abfragen. Nur habe ich auch das noch nicht hin bekommen. Unterhalb der ersten 6 Zeilen befindet sich eine formatierte Matrix mit 20 Zeilen und 4 Spalten.
Ich hoffe, ihr könnt mir helfen. Ich bin absoluter Neuling, was Dateioperationen betrifft und in den letzten 3 Stunden probieren und Suchen bin ich noch nicht fündig geworden.
Vielen Dank schon mal!
|
|
|
|
|
|
| Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 01.03.2012, 13:29
Titel:
|
 |
was hast du denn schon versucht? was für dateien sind das? txt excel?
welche fehler sind aufgetreten?
wie man dateien einliest wurde in diesem forum schon sehr oft behandelt.
|
|
|
|
| rennur |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 18
|
 |
|
 |
Anmeldedatum: 13.02.12
|
 |
|
 |
Wohnort: Berlin
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 01.03.2012, 21:14
Titel:
|
 |
| |
 |
|
inzwischen habe ich einen funktionierenden fopen Befehl. Ich öffne damit die Datei und kann sie anschließend wieder schließen. Über die Rückgabe, welche gerne als "fid" bezeichnet wird, habe ich auch eine ID, welche der geöffneten Datei zugewiesen ist. Allerdings habe ich damit immer noch keine Daten aus der Datei ausgelesen.
mit fgetl, fscanf und fread herum probiert, aber nichts zustande gebracht. Das Problem ist vielleicht auch, dass ich nicht weiß, was man mit welchem Befehl machen kann und wie generell mit Dateien und deren Inhalten erfahren wird. Bei einem der Befehle hat MATLAB gemeckert, dass die erste Zeile anders formatiert ist, als die anderen. Klar, die ersten 6 Zeilen und Header und unwichtig. Dann ist da noch dieser völlig andere "inputdata"-Befehl? Warum gibt es diesen auch noch und was macht dieser wieder anders?
Die Datei selbst ist eine Ergebnisdatei von Ansys, in der die Eigenfrequenzen meines Systems abgelegt sind. Wie gesagt, aus der Datei benötige ich nur 10 Zahlen, bzw. eigentlich auch nur 5. Diese kommen alle doppelt vor.
Hab hier und da auch schon einige Skripte gefunden. Nur bin ich kein Fan von Copy & Paste, denn damit habe ich noch nichts verstanden.
|
|
|
|
| rennur |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 18
|
 |
|
 |
Anmeldedatum: 13.02.12
|
 |
|
 |
Wohnort: Berlin
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.03.2012, 09:57
Titel:
|
 |
im Moment experimentier ich mit folgenden Zeilen:
datei = fopen('optimal_1.5.txt');
tline=getl(datei);
disp(tline)
fclose(datei);
Ich wollte sehen, ob ich überhaupt erst mal eine Zeile aus der Datei einlesen kann. Kann ich nicht. Ich bekomme den Fehler, dass die "input arguments" vom Typ "double" sein müssen. Die ersten 6 Zeilen sind aber vom Typ "char", welche ich sehr gerne überspringen möchte. Erst danach kommen Zahlenwerte.
|
|
|
|
| rennur |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 18
|
 |
|
 |
Anmeldedatum: 13.02.12
|
 |
|
 |
Wohnort: Berlin
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.03.2012, 10:17
Titel:
|
 |
ich glaube, ich bin auf dem richtigen Weg.
Hab einen falschen Befehl benutzt: statt "fgetl" habe ich mit "getl" gearbeitet. Den Befehl gibt es nur gar nicht.
Jetzt kann ich auch zeilenweise einlesen.
Ab der 6. Zeile kann ich nun hoffentlich den Rest mit einem mal einlesen und in ein Feld speichern.
|
|
|
|
|
|
|
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.
|
|