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

nur jedes zweite file einlesen

 

Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.09.2012, 16:14     Titel: nur jedes zweite file einlesen
  Antworten mit Zitat      
hallo ihr!

ich hab mal ne frage zum einlesen von mehrere Daten.
Ich habe eine Ordner mit 260 nc-files und habe diese mit

Code:

file = dir('filename*.nc')
 


eingelesen. Jetzt möchte ich aber, dass nicht alle files geladen werden, sondern nur jedes zweite, also 1, 3, 5, 7, ... bzw. 2, 4, 6, 8, ...
Bis jetzt habe ich das immer so gemacht, dass ich zwei extra ordner angelegt und die Files dareinkopiert habe, sodass, dann ein ordner alle "geraden" enthält und ein ordner alle "ungeraden", jedoch waren es bis jetzt immer nur 24 Datein und jetzt sind es 260.

Meine Frage: kann man matlab sagen, dass es nur jedes zweite file einlesen soll?

Die Filenamen sehen so aus: MES20081008_xxxx, die letzten vier zahlen xxxx ändern sich immer.

danke, schonmal.
susi


Sirius3
Forum-Guru

Forum-Guru


Beiträge: 441
Anmeldedatum: 12.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.09.2012, 18:45     Titel:
  Antworten mit Zitat      
Hallo Susi,
die xxxx-Zahlen sollen nach gerade oder ungerade sortiert werden?
Code:
files = dir('MES20081008_*.nc');
idx=cellfun(@(n)mod(n(16),2)==0,{files.name});
gerade=files(idx);
ungerade=files(~idx);


Grüße
Sirius
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.09.2012, 19:51     Titel:
  Antworten mit Zitat      
hallo!

Ich will die Files nicht sortieren, sondern dass nur jedes zweite File eingelesen wird. Die Files sind richtig geordnet.zB.

10 files:
MES20081008_019k
MES20081008_051m
MES20081008_0759
MES20081008_101i
...

Und jetzt sollen nur die files an der 1. und 3. stelle eingelesen werden, bzw. an der 2. und 4. stelle. Wenn das irgendwie funktionieren würde, würde mir das eine menge zeit ersparen.

Danke!
susi
 
Sirius3
Forum-Guru

Forum-Guru


Beiträge: 441
Anmeldedatum: 12.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.09.2012, 21:36     Titel:
  Antworten mit Zitat      
Hallo Susi,

also noch einfacher:
Code:
files = dir('MES20081008_*.nc');
ungerade=files(1:2:end);
gerade=files(2:2:end);


Grüße
Sirius
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 24.09.2012, 21:37     Titel:
  Antworten mit Zitat      
Hallo,

Die Reihenfolge der Files im Output von DIR ist nicht dokumentiert und hängt eventuell von Betriebssystem ab. Deshalb würde ich dringend raten, die Dateien zunächst zu sortieren. Danach kann man so jedes zweite auswählen:
Code:
list = dir('filename*.nc');
name = sort({list(~[list.isdir]).name});
name1 = name(1:2:end);
name2 = name(2:2:end);

Gruß, Jan
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.