Verfasst am: 08.04.2010, 14:23
Titel: Dateien mit bestimmten Dateinamen verschieben
Hallo zusammen,
ich habe eine Messreihe mit rund 1000 Dateien. Diese sind in einem Ordner und haben fortlaufende Nummern (entsprechen den Sekunden seit Beginn der Messung) als Dateiname. Nun möchte ich genau 9 Dateien haben.
Meine Idee ist, zunächst mein Soll-String mit den einzelnen Namen zu vergleichen und mir dann in der Variable "wert" die Position zu merken. Dann nehme ich die 9 Positionen und verschiebe diese Dateien in einen anderen Ordner.
Leider spring MATLAB hierbei nie in die if-Schleifen, sondern gleich immer in den else-Teil. Die Variablen "count" zählen bis 107 (es sind 107 Dateien im Ordner) hoch und die Variable "wert" wird schon gar nicht initialisiert
ich würde ersteinmal generell dein Programmdesign anprangern. Du machst ja im Grunde genommen immer wieder etwas ähnliches, dass muss auch kompakter gehen. Wahrscheinlich musst du dafür zunächst ein cell array mit den Dateinamen Strings erstellen. Um dass zu ändern müsstest du mir aber bitte genau erklären was deine Eingaben und was deine Ausgaben sein sollen.
Von der generellen Idee sollte dein Code natürlich trotzdem funktionieren. Kontrolliere noch einmal deine Anfangsvariablen:
plus... minus... sind strings, count... sind aber Zahlen. Und var... setzt du dann aus strings und zahlen zusammen. Du solltest also bei count... vor dem Zusammensetzen ein num2str() benutzen.
Noch ein paar generelle Tipps:
i und j sollten nicht als Laufvariable benutzt werden
null auch nicht, ist eine Funktion
size(dir,1);
Hoffe das hilft dir meld dich obs jetzt klappt und zum kompakt machen.
Ich habe nun das num2str mit eingebaut. Es hat sich nichts verändert.
Mit cellArrays habe ich noch nie gearbeitet
Die Sache ist die:
Ich möchte beispielsweise für die Messung plus20 eine Datei herausfiltern die in ihrem Namen eine Zahl von 6800 bis 6899 hat. count4 erzeugt mir hierzu die laufende Zahl in var_plus20.
ahh ok, das was du beschreibst machst du aber nicht in deinem Code, deswegen geht es nicht. Du bräuchtest im Grunde genommen 2 For Schleifen: eine geht durch alle Dateinamen, die andere durch alle möglichen Endungen. Zurzeit machst du beides gleichzeitig in einer For Schleife.
Besser ist es aber du ersparst dir die For Schleifen mit regexp:
So kannst du deine Dateiendungen kontrollieren ob Sie noch von 01 bis 99 gehen. Allerdings musst du dich schon noch etwas mit regexp beschäftigen. Du willst es ja auf einen Pfad anwenden.
Variable "filenames" beinhaltet nun die Namen von den betrofennen Dateien.
Jetzt musst Du die nur noch per COPYFILE (oder MOVEFILE) copieren (oder bewegen)
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.