|
|
Dateien einlesen die mit 0 beginnen |
|
Xerilefo |
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 28.07.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.07.2009, 23:45
Titel: Dateien einlesen die mit 0 beginnen
|
|
|
|
|
Hallo liebes Forum.
Sitze gerade an einem kleinen Projekt welches auch zu 95% schon fertig ist.
Scheitere gerade an der Optimierung einer längeren Berechnung.
Zur Zeit lese ich alle Dateien aus einem Unterordner ein damit ich bestimmte Dateien später weiterverarbeiten kann.
mit
Da das erstellen dieser Liste bei 100.000 Dateien etwas lange dauert, aber ich schlussendlich nur 1/10 davon brauche suche ich dafür eine andere Lösung.
Das Problem im konkreten besteht darin, dass die Dateinamen mit Vorgestellten 0(Null) beginnen zB 000111.jpg.
zZ speichere in eine weiteren Schleife dann aus diese gewonnenen Daten zu den gesuchte Datensätzen die dazugehörigen Dateinamen dh. ich habe eine Datei in der die gesuchten Dateien drinnen stehen.
1 -> 3
2 -> 45
3 -> 111
In dieser Datei füge ich danach in der 3. Zelle den Dateinamen an.
1 -> 3 -> 000003.jpg
2 -> 45 -> 000045.jpg
3 -> 111 -> 000111.jpg
Da die darauffolgenden Berechnungen mit den ausgewählten Bildern noch dementsprechend zeit intensiv ist wollte ich gerne den Zwischenschritt über den oben angefügten Code vermeiden.
Hat dazu vielleicht einer eine Idee wie ich das ganze optimieren könnte?
Danke
ps: hoffe ich hab das jetzt nicht zu umständlich erklärt
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.449
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 29.07.2009, 08:49
Titel:
|
|
Hallo,
das war wirklich etwas umständlich. Wenn es darum geht, die Dateien zu bekommen, die mit 0 anfangen:
(patch sollte als Variablenname vermieden werden, da es auch ein MATLAB-Befehl ist)
Grüße,
Harald
|
|
|
Xerilefo |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 28.07.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 29.07.2009, 17:10
Titel:
|
|
naja in diesen speziellen fall beginne alle mit 0 und das ohne ausnahmen.
dachte nur es gäbe eine möglichkeit mein code-schnipsel zu umgehen.
das problem in einzelnen besteht ja somit nur hier da die dateinamen aus zahlen und dann noch mit 0 beginnend bestehen. wären die dateinemen aus buchstaben dann würde man die ja ganz einfach mittels
finden.
kann ich ja auch nicht verwenden, da ich dann ja bei zB
variabel_dateiname = 57
dann auch alle anderen dateien erhalte in denen 57 vorkommt.
also auch 00057.jpg, 00157.jpg00257.jpg sowie auch dateien wie 01572.jpg usw.
ps: hatte anfangs eh pfad anstelle von patch (sogar noch falsch geschrieben)
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.449
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 29.07.2009, 17:41
Titel:
|
|
Ich habe offen gesagt noch nicht begriffen, welche Dateien du willst bzw. nach welchem Kriterium sie ausgewählt werden. Sprich: wie ist ads von dir erwähnte 1/10 charakterisiert?
Grüße,
Harald
|
|
|
denny |
Supporter
|
|
Beiträge: 3.853
|
|
|
|
Anmeldedatum: 14.02.08
|
|
|
|
Wohnort: Ulm
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 29.07.2009, 18:02
Titel:
|
|
Hallo,
ich habe folgende Idee, falls deine Dateinamen gleich lang sind?
Dann kannst den Namen so genieren:
und so gleich mehrere
|
|
|
Xerilefo |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 28.07.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 30.07.2009, 10:03
Titel:
|
|
|
|
|
Hallo
Ich habe für das Projekt einen Ordner mit Bildern. Dazu habe ich eine Datei in der relevante Bilder dieses Ordners aufgelistet sind.
Dabei habe ich das Problem, dass die Bilder mit 0 beginnen und alle x Zeichen lang sind.
leider habe ich in der Liste mit den Relevanten Bildern nur Zahlen drinen die keine vorstehenden 0en haben.
Deswegen habe ich für diesen Fall den Umweg über die Liste aus allen im Ordner enthaltenen Dateien gewählt (bei mir haben die Dateien eine Dateibezeichnung von 00000 - max. 99999).
So wie ich es zZ habe haut es mich ja schon auf die Nase wenn nur ein Bild im Ordner fehlen würde. Gehe nämlich davon aus, dass ausnahmslos alle Bilder vorhanden sind und ich so über die Zeilen der Hilfsliste auf die Dateinamen kommen.
Im konkreten hieße das, dass ich in meiner Liste der relevanten Dateien in Zeile 1 die Zahl 3, in Zeile 2 die Zahl 45 und in Zeile 3 die Zahl 111 befindet. Danach gehe ich her und sage, füge in der Zeile 1 den Dateinamen aus Zeile 3 der Hilfliste ein usw.
Da dies aber nur auf diesen eine speziellen Fall anwendbar ist und auch nur aus dem Grund da ich eine Liste habe wo nahtlos alle Bilder drinnen sind.
Leider ist dies ja nicht universell einsetzbar.
Und genau da stehe ich nun an.
Ziel sollte es sein, dass ich eine Liste bekomme mit Daten (denke mal, dass es voraussichtlich immer Zahlen sind die verwendet werden da man ja damit leichte rechnen kann), einen Ordner mit Bildern und ich dann aus diesen 2 Inputs meine Berechnungen mit den Bildern durchführe (Berechnung mit den Bildern klappt schon).
@Harald
Was die 1/10 beziehung betrifft geht es darum:
Wenn ich angenommen 10000 Bilder habe, eine Liste mit relevanten Bildern dann kann ich davon ausgehen, dass ich laut dieser Liste nur 1/10 der Bilder brauche dh. das einlesen der anderen Bilder wär somit sinnlos und nur Zeit raubend.
Gehe ich richtig in der Annahme, dass mit %06d eine Länge von 6 Ziffern mit beginnender 0 gemeint ist?
Wird hier davon ausgegangen, dass es immer eine 0 am Anfang gibt?
|
|
|
denny |
Supporter
|
|
Beiträge: 3.853
|
|
|
|
Anmeldedatum: 14.02.08
|
|
|
|
Wohnort: Ulm
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 30.07.2009, 11:38
Titel:
|
|
Hallo
Xerilefo hat Folgendes geschrieben: |
Gehe ich richtig in der Annahme, dass mit %06d eine Länge von 6 Ziffern mit beginnender 0 gemeint ist?
Wird hier davon ausgegangen, dass es immer eine 0 am Anfang gibt?
|
Ja , alle Zahlen die weniger als 6 Zeichen haben, werden künstlich mit Nullen aufgefüllt.
So habe nochmal mehrmals deine letztes Posting durchgelesen und denke dass mein Vorschlag passt.
Du hast doch
1) Daten-Liste als Zahlenvektor
2) Dateinamen sind x lang
Zuletzt bearbeitet von denny am 30.07.2009, 12:04, insgesamt einmal bearbeitet
|
|
|
Xerilefo |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 28.07.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 30.07.2009, 11:59
Titel:
|
|
denny hat Folgendes geschrieben: |
Ja , alle Zahlen die weniger als 6 Zeichen lang sind, werden künstlich mit Nullen aufgefüllt und zwar am Anfang. |
Glaub das könnte schon mal ein guter Fortschritt sein.
Werde es am Abend gleich mal ausprobieren ob es so funktioniert.
|
|
|
Xerilefo |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 28.07.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.08.2009, 23:28
Titel:
|
|
leider bin ich erst heute dazugekommen den Vorschlag zu testen.
Muss sagen, dass es so wunderbar klappt.
Danke nochmal für die Hilfe.
aber noch schnell was anderes:
gibt es eigentlich eine deutschsprachige Dokumentation?
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 04.08.2009, 08:57
Titel:
|
|
Es gibt keine deutschsprachige Dokumentation, aber zig deutschsprachige MATLAB Bücher wie sie ja auch hier beworben werden. Eine Übersicht auf MathWorks Seiten gibt es auch.
Andreas
|
|
|
Xerilefo |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 28.07.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 04.08.2009, 19:41
Titel:
|
|
Danke nochmal an die hilfreichen Beiträge.
Danke für die Info zwecks Doku.
Damit kann ich das Thema dann für erledigt erklären.
|
|
|
Xerilefo |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 28.07.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.08.2009, 17:59
Titel:
|
|
Jetzt hat sich ein weiteres Problem herausgestellt
Da ich nun über die dir-Funktion die Dateinamen und so deren Länge ermittle sowie deren Dateiendung deswegen müsste ich nun den spdrintf-Ausdruck umschreiben.
ergibt ja 000001.jpg
da ich aber die 6 durch eine Variable ersetzten möchte funktioniert das ganze nimmer.
Geht das überhaupt?
mein derzeitiger Code:
leider kann ich da mit %d keine weitere Variable einfügen, da er %0%dd ja nicht erkennt
gibt es dazu einen Lösungsvorschlag?
|
|
|
LittleX |
Forum-Guru
|
|
Beiträge: 494
|
|
|
|
Anmeldedatum: 14.05.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.08.2009, 09:54
Titel:
|
|
Hallo,
Du kannst Dir den Formatstring erst einmal selber zusammenbauen.
Viele Grüße,
LittleX
|
|
|
Xerilefo |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 28.07.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 25.08.2009, 00:19
Titel:
|
|
die lösung vor augen aber den weg nicht gefunden ... danke für die hilfe
|
|
|
|
|
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 - 2024
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.
|
|