WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

for schleife netcdf

 

stevorino
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 95
Anmeldedatum: 06.12.11
Wohnort: ---
Version: R2007b
     Beitrag Verfasst am: 21.11.2013, 17:39     Titel: for schleife netcdf
  Antworten mit Zitat      
Hallo,

Ich habe folgendes Problem:
Ich möchte viele .nc Dateien einlesen, bearbeiten, und dann als .asc speichern. Für eine einzelen Datei funktioniert das ganz gut.

Hier mein Beispiel für einen Tag:

Code:
D110801=getnc('D:\data_20110801.nc',1);
D110801a=D110801(2,60,1:160,1:320);
D110801b=reshape(D110801a,160,320);
D110801c=(D110801b(:,161:320));
D110801d=(D110801b(:,1:160));
D110801e=horzcat(D110801c,D110801d);

save('D:\data_110801.asc','D110801e','-ASCII');


Ich müsste es allerdings für alle Tage von August 2011 machen, also eine Schleife einbauen. Einen Ansatz habe ich schon, aber irgendwie stecke ich hier fest.

Code:
for Y=11
    YY=num2str(Y,'%02d');
for M=8
    MM=num2str(M,'%02d');
for D=1:31
    DD=num2str(D,'%02d');

D110801=getnc(['D:\data_20' YY MM DD '.nc',1]);
D110801a=D110801(2,60,1:160,1:320);
D110801b=reshape(D110801a,160,320);
D110801c=(D110801b(:,161:320));
D110801d=(D110801b(:,1:160));
D110801e=horzcat(D110801c,D110801d);

save(['D:\data_' YY MM DD '.asc','D110801e','-ASCII']);

end
end
end


Da kommt leider folgende Fehlermeldung:
Zitat:
??? Error using ==> CSIRO_get_more_file_info at 22
D:\data_20110801.nc could not be found

Error in ==> getnc at 298
[cdf, file_status] = CSIRO_get_more_file_info(file);

Error in ==> test at 9
D110801=getnc(['D:\data_20' YY MM DD '.nc',1]);


Hat jemand einen Vorschlag?

Danke,
Stno
Private Nachricht senden Benutzer-Profile anzeigen


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 21.11.2013, 19:00     Titel:
  Antworten mit Zitat      
Hallo

ich glaube da ist die Klammer falsch gesetzt.

Code:
D110801=getnc(['D:\data_20', YY, MM, DD, '.nc'], 1);
Private Nachricht senden Benutzer-Profile anzeigen
 
stevorino
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 95
Anmeldedatum: 06.12.11
Wohnort: ---
Version: R2007b
     Beitrag Verfasst am: 22.11.2013, 11:10     Titel:
  Antworten mit Zitat      
Hallo Denny,

Danke für die schnelle Antwort, jetzt funktioniert es!

Grüße,
Stno
Private Nachricht senden Benutzer-Profile anzeigen
 
stevorino
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 95
Anmeldedatum: 06.12.11
Wohnort: ---
Version: R2007b
     Beitrag Verfasst am: 22.11.2013, 11:26     Titel:
  Antworten mit Zitat      
Jetzt gibt es nur noch ein Problem beim Speichern.

Ich möchte die letzte Variable 'D110801e' als .asc speichern.

das versuche ich über:
Code:
save('D:\data_110801.asc','D110801e','-ASCII');


der output ist aber dan folgender:
data_110801.ascD110801e-ASCII (die datei ist sehr groß...)

eigentlich möchte ich nur eine 160x320 matrix als output, gespeichert im .asc Format.

Hat jemand eine Idee, was hier falsch ist?

Grüße,
Stno
Private Nachricht senden Benutzer-Profile anzeigen
 
Duall777
Forum-Anfänger

Forum-Anfänger


Beiträge: 26
Anmeldedatum: 28.10.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.11.2013, 12:08     Titel:
  Antworten mit Zitat      
Hi,

ich weis nicht obs nen unterschied macht aber versuch mal scii klein zu schreiben als

Code:

save('D:\data_110801.asc','D110801e','-ascii');
 


dann müsste es gehen

Gruß

Duall777

zumindes laut hilfe wird es kleingeschrieben
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 22.11.2013, 12:20     Titel:
  Antworten mit Zitat      
Ach So


dort ist auch die Klammer falsch gesetzt, so wird es alles in den Filenamen geschrieben ohne Inhalt in dem File
richtig wäre so:
Code:

save(['D:\data_', YY, MM, DD, '.asc'],'D110801e','-ascii');
 
Private Nachricht senden Benutzer-Profile anzeigen
 
stevorino
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 95
Anmeldedatum: 06.12.11
Wohnort: ---
Version: R2007b
     Beitrag Verfasst am: 22.11.2013, 13:07     Titel:
  Antworten mit Zitat      
Wieder die Klammer ...

Danke Denny, jetzt läuft es wie geschmiert!

Danke auch Dual777 für Deinen Beitrag (obwohl klein oder groß geschrieben in dem Fall egal ist)

Viele Grüße,
Stno
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.