Dabei entspricht die "# Zeile" der Zeit in ns und die Zeile mit dem Buchstaben "r" einem Temperaturmesswert. Das Entfernen des Headers sollte soweit nicht das Problem sein. Jedoch das Anordnen der Zeilen zu jeweiligen Spalten gestaltet sich sehr schwierig. Hat vll. jmd. einen Ansatz?
Grüße
ich würde es mit einer Schleife über fgetl-Statements versuchen.
Hast du denn schon etwas versucht? Kannst du den Code dazu posten und die Probleme, die dabei aufgetreten sind?
Grüße,
Harald
Hammy_1703
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 25.10.2017, 12:14
Titel:
Die Kopfzeile würde ich so entfernen und entprechend zwei Spalten für die Werte definieren.
Allerdings würde ich es auch gern verstehen wollen.
Code:
t = []; % Array für die Zeit
Temp = []; % Array für die Temp while ~feof(fid)% prüfen ob noch Zeilen da sind
timerow = fgetl(fid); % festlegen des Zeileninhalts : Zeit
t = [t; str2double(timerow(2:end))]; % ???
temprow = fgetl(fid); % festlegen des Zeileninhalts : Temp
Temp = [Temp; str2double(temprow(2:end-2))]; % ???
Werden jetzt alle ungeraden Zeilen der Zeit und alle Geraden der Temperatur zugeordnet?
" " " die Anführungsstriche sind in diesem Fall der Identifier für die Temperatur. Wenn nun aber beispielsweise eine weitere Zeile sporadisch mit einem anderen Messwert, in der Datei, auftauchen würde.
Allerdings würde ich es auch gern verstehen wollen.
Das ist eine gute Idee :) Die Zeilen mit den ? :
Nimm entsprechenden Teil der Zeile, wandle ihn in einen Double um, und hänge ihn an die vorhandenen Daten an.
Zitat:
Werden jetzt alle ungeraden Zeilen der Zeit und alle Geraden der Temperatur zugeordnet?
Genau.
Zitat:
Wie kann ich meiner "Temprow" da die Temperatur zuweisen?
Wie erkennt man denn, welcher der Werte die Temperatur ist? An dem Wert hinter dem ", an dem Wertebereich, oder an was ganz anderem?
Generell wirst du dann die Zeilen immer mit einer if-Abfrage analysieren müssen.
Grüße,
Harald
Hammy_1703
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 25.10.2017, 14:36
Titel:
Zitat:
Nimm entsprechenden Teil der Zeile, wandle ihn in einen Double um, und hänge ihn an die vorhandenen Daten an.
Dann hatte ich das richtig vermutet. Schön (:
Zitat:
Wie erkennt man denn, welcher der Werte die Temperatur ist? An dem Wert hinter dem ", an dem Wertebereich, oder an was ganz anderem?
rxxx steht für read und den entsprechenden Wert. Und der Teil der anschließend aufgezeichnet wird, entspricht dem Identifier des jeweiligen Messwerts.
als hoffentlich verständliches Beispiel:
Code:
r301 "0% read Wert:301 Identifier: " "0 " = Temperatur
r23 A % read Wert:23 Identifier: " A " = Strom
Zuletzt bearbeitet von Harald am 25.10.2017, 15:52, insgesamt einmal bearbeitet
Hammy_1703
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 25.10.2017, 15:28
Titel:
Da hast du natürlich recht.
Funktioniert super - auch bei mehreren Variablen.
Vielen Dank Harald
Grüße
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
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.