|
|
|
csvread-csvwrite- Daten einlesen, bearbeiten, ausgeben |
|
| parish |

Forum-Newbie
|
 |
Beiträge: 2
|
 |
|
 |
Anmeldedatum: 02.06.17
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.06.2017, 19:28
Titel: csvread-csvwrite- Daten einlesen, bearbeiten, ausgeben
|
 |
| |
 |
|
Ahoi zusammen!!
Auch ich habe mich nun entschlossen einen neuen Beitrag aufzumachen, da ich mit der SuFu einfach nicht glücklich werde.
Ich hätte die Lösung quasi eh fast schon geschafft, aber leider nur mit einem -work-around-, welcher sicher nicht toleriert wird. (mehr dazu später)
Folgende Aufgabe:
Ich habe eine .dat Datei zum einlesen (wird nicht von Matlab generiert)
Nennen wir sie temperatur.dat
In dieser Datei steht durch die csv Methode das Jahr, Temperaturmittelwert.
BSP:
2002,19.2
2003,20.8
2004,19
Nun muss ich diese Daten einlesen, den letzten ausgegebenen Wert ermitteln (zb. das Jahr 2020), und danach Matlab sagen, dass es noch +20 Jahre weiterrechnen soll.
(die Temperatur kann idF vernachlässigt werden)
Grund: einen linear fit für die nächsten Jahre erstellen...
So... meine Code bis jetzt:
Array = csvread('temperatur.dat');
col1 = Array(:, 1);
col2 = Array(:, 2);
Hier habe ich die Werte mal eingelesen und diese dann mit col1,2 getrennt, damit ich diese seperat bearbeiten kann.
for startjahr = 1993 : 1 : 2035
csvwrite ('temperatur_erweitert.dat',startjahr);
type temperatur_erweitert.dat
end
Hier hätte ich mir gedacht, ich mache eine for Schleife, welche mir die nächsten paar Jahre erzeugt.
Dies ist natürlich nicht der richtige Code, aber ich bekomme im command window das richtige Ergebnis.
Nur:
wenn ich jetzt die 'temperatur_erweitert.dat' öffne, sehe ich nur eine 1*1 Tabelle mit dem Endwert 2035.
Weiß jemand, wie ich der 'temperatur_erweitert.dat sagen kann, dass sie eine n*1 double matrix werden soll?
Ist es auch möglich, matlab zu sagen, es soll ab den letzten Eintrag +n Jahre weiter eintragen?
Danke schon mal herzlichst für eure Antworten!!
Ahja... der versprochene work- around....
einfach eine zweite .dat Datei manuell erstellen und danach auslesen
Danke!
|
|
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 03.06.2017, 22:01
Titel:
|
 |
Hallo,
für was denn die for-Schleife?
| Zitat: |
| Ist es auch möglich, matlab zu sagen, es soll ab den letzten Eintrag +n Jahre weiter eintragen? |
Ziemlich sicher. Um dir helfen zu können, müsste ich allerdings verstehen, was du meinst.
Grüße,
Harald
|
|
|
|
| parish |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 2
|
 |
|
 |
Anmeldedatum: 02.06.17
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.06.2017, 09:55
Titel:
|
 |
| |
 |
|
Danke Harald!
Du hast natürlich absolut recht... die for Schleife macht wenig Sinn!
Vielen Dank, funktioniert!
Zu meiner Frage....
Ich habe ein Programm, welches automatisch eine .dat Datei einließt.
Wie oben bereits beschrieben:
BSP:
2002,19.2
2003,20.8
2004,19
So.... Nun folgendes:
Es ist davon auszugehen, dass diese Datei von einem externen (nicht Matlab) Programm erstellt wird.
Nun möchte ich aber diese Daten extrapolieren, quasi eine Vorhersage machen.
Nehmen wir an, der letzte Jahreseintrag in dieser Datei war 2005.
Nun möchte ich eine "Vorhersage", eine Extrapolation bis 2015, also + 10 Jahre.
Wenn ich mein Matlab Programm automatisieren möchte, muss ich es irgendwie schaffen, dass Matlab immer den letzten Wert, also idF 2005, erkennt, und erweitert.
So muss ich diese Datei selbst öffnen, nachsehen, und dann weiterrechnen.
Glaubst könnte man das so wie ich es beschrieben habe automatisieren?
Ich hoffe ich habe mich verständlich ausgedrückt :- )
Vielen herzlichen Dank!!
Liebe Grüße
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 08.06.2017, 18:15
Titel:
|
 |
Hallo,
probier's doch mal aus.
Letztlich kannst du z.B.
interp1
zur Extrapolation verwenden.
Grüße,
Harald
|
|
|
|
|
|
|
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.
|
|