|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.09.2012, 11:46
Titel: nc-files
|
 |
Hi ihr Profis!
Ich arbeite noch nicht so lange mit Matlab und hab zum Einstieg gleich eine tolle Aufgabe bekommen:
Ich soll mehrer nc-Files einlesen. Die Namen der Files sind:
TRAF20081101_0605
TRAF20081101_0610 ...
...
TRAF20081101_1305
TRAF20081101_1310 ...
...
TRAF20081101_2305
TRAF20081101_2310 ...
Also:TRAF jahr monat tag_stunde minute. Darin sind die Daten einer Messreihe enthalten. Diese kann ich auch auslesen, wenn ich nur ein File einlese bzw. kann ich alle Files:
Jetzt müsste ich aber drei Stunden einlesen.
Ich hab das mal folgenderweise probiert:
|
|
|
|
|
Tusor |

Forum-Fortgeschrittener
|
 |
Beiträge: 71
|
 |
|
 |
Anmeldedatum: 02.07.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.09.2012, 12:10
Titel:
|
 |
Hallo,
es ist schade, dass die Zeile in der dein Fehler auftaucht nicht im Minimalbeispiel enthalten ist.
Was mir aber spontan auffällt: Deine Beispieldateinamen haben nach dem Unterstrich noch 4 Ziffern. Du hängst in deinem Code aber nur 2 an! Vielleicht solltest du statt num2str auch sprintf nehmen, da du hier auch solche hübschen Sachen wie führende Nullen mit erhältst (wenn du mal nicht die Stunden 11-14 sondern 6-7 suchst)
Viele Grüße
Tusor
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.09.2012, 12:25
Titel:
|
 |
Die Zeile, in der der Feher auftriff ist:
Error in ==> einlesen_ncfile
ncid{i} = netcdf.open(fid(i).name);
Und diese Zeile funktioniert, wenn ich entweder nur eine Datei oder alle Files einlese.
LG
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.09.2012, 13:02
Titel: unterschiedlich lange vektoren
|
 |
Hallo zusammen!
Leider habe ich schon wieder Matlab-Probleme.
Mit fopen habe ich mir ein txt.File eingelesen. Einhalten habe ich ein 1x15 cell, das leider 15 verschieden lange vektoren enthält.
XX = [25x1] [27x1] [38x1] [20x1] ...
Ich möchte jetzt aber die einzelnen Vektoren miteinander addieren und muss vorher alle Vektoren auf eine gemeinsame Länge bringen. Vermutlich wäre es am besten, die Vektoren mit Null aufzufüllen. Das habe ich auch schon probiert (für einzelne Vektoren):
Ich möchte aber gerne eine Schleife darüber machen, damit der vektor mit der maximalen Länge erkannt wird und automatisch die restlichen Vektoren aufgefüllt werden. Ist das irgendwie möglich?
LG
|
|
|
Tusor |

Forum-Fortgeschrittener
|
 |
Beiträge: 71
|
 |
|
 |
Anmeldedatum: 02.07.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.09.2012, 13:29
Titel:
|
 |
Ist denn das andere Problem schon gelöst?
Mir fällt gerade auf, dass da nämlich noch ein anderer Fehler drin versteckt ist. Mit:
bekommst du ein Struct-Array.
Mit deiner Schleife baust du dir aber einen zusammenhängenden String, weshalb fid(i).name nicht mehr funktionieren kann, da ein String die Eigenschaft name nicht hat. Deshalb wäre ein zusammenhängendes Beispiel wirklich schön, wo in dem auszuführenden Code auch dein Aufruf ncid{i} = netcdf.open(fid(i).name); mit enthalten ist. Denn der passt derzeit überhaupt nicht zu der Schleife, weshalb nicht ganz klar ist, wo das Problem nun wirklich liegt.
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 11.09.2012, 16:59
Titel: Re: unterschiedlich lange vektoren
|
 |
Hallo,
Ich verstehe nicht, welches Format die Inputs haben. Wie erzeugst Du per FOPEN denn ein Cell-Array?
Was ist rr1, rr2, rr3? Wenn Du schon ein Cell-Array hast, wäre es viel einfacher gleich "XX{1}, XX{2}, ..." zu benutzen.
Ich rate mal, was helfen könnte:
Oder Du füllst wirklich mit Nullen auf, aber dann bleibt das addieren immer noch schwierig, da diue Daten ja in einem Cell stehen:
Gruß, Jan
|
|
|
|
|
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.
|
|