|
|
Viele Matrizen beim Einlesen automatisch umbenennen? |
|
punsel |

Forum-Anfänger
|
 |
Beiträge: 27
|
 |
|
 |
Anmeldedatum: 23.01.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.12.2009, 20:22
Titel: Viele Matrizen beim Einlesen automatisch umbenennen?
|
 |
|
 |
|
Hallo ich sitze gerade an einem Problem, dass ich in einem anderen Eintrag hier im Forum beschrieben habe. Alternativ habe ich eine Moeglichkeit gefunden, dieses Problem auf die Schnelle (aber sehr unelegant) zu loesen.
Ich moechte hier mein Ausgangsproblem nicht weiter beschreiben, weil es fuer meine Frage nicht wichtig ist.
Hier aber meine Frage:
wie kann ich beim automatischen Einlesen vieler Matrizen aus einem Ordner die einzelnen Matrizen umbenennen?
ich benutze folgendes kleines Script:
files = dir('*.txt');
for i=1:length(files)
eval(['load ' files(i).name ' -ascii']);
end
zum einlesen meiner Matrizen.
Die Namen der einzelnen Dateien sind aber leider sehr kompliziert und ich moechte sie gerne mit einer fortlaufenden Zahl austauschen (die erste eingelesene Datei soll "1" heissen, die zweite eingelesene Datei soll "2" heissen, usw.). Hat jemand eine Idee, wie sich das machen laesst?
Entschuldigt bitte, dass ich quasi zwei Eintraege zum gleichen Problem einstelle - ich bin leider sehr in Zeitproblemen beim loesen meines Problems und eine Loesung fuer eine von beiden Fragen wuerde bereits mein Problem loesen
Danke im Voraus, Lars
|
|
|
|
|
kingkamali |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.12.2009, 02:42
Titel:
|
 |
mach doch einfach noch ein Zähler in deine Schleife rein, der mit 1 anfängt. Und dann abspeichern mit dem Zähler als Dateinamen
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 17.12.2009, 10:55
Titel:
|
 |
Hallo du meinst wahrscheinlich so:
|
|
|
Jan* |

Forum-Century
|
 |
Beiträge: 178
|
 |
|
 |
Anmeldedatum: 06.11.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2007b
|
 |
|
|
 |
|
Verfasst am: 17.12.2009, 10:57
Titel:
|
 |
Hi,
so weit ich weiß ist es nicht möglich die Variablennamen in einer .mat Datei während des loads zu ändern. Die einzige Möglichkeit die ich sehe ist es das nach dem laden zu machen, indem du dir die Variablennamen mit who zurückgeben lässt, und dann mit eval eine neue Variable erzeugst, und anschließend die alte löscht.
Gruß Jan
/Edit: Ah, siehe Denny. Beim load selber geht es nicht, aber man kann natürlich die geladene Variable direkt zuweisen.
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 17.12.2009, 11:23
Titel:
|
 |
Hallo Jan,
da hier TXT-Dateien eingelesen werden, enthalten diese keine Variablen, sondern nur Matrizen in Textform.
Der Gesamte File ist eine Variable, File-Name entspricht Variablen Namen.
Deswegen kann man hier einfach durch direkte Zuweisung lösen
|
|
|
Jan* |

Forum-Century
|
 |
Beiträge: 178
|
 |
|
 |
Anmeldedatum: 06.11.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2007b
|
 |
|
|
 |
|
Verfasst am: 17.12.2009, 11:48
Titel:
|
 |
Hi denny,
ich hatte übersehen, dass hier eine Textdatei und keine .mat geladen wurde. Ich habe aber eben mal ein wenig rumprobiert, das ganze geht so bei .mat Dateien auch, wenn nur eine einzige Variable im Workspace gespeichert wurde. Bei mehreren Variablen werden dann sämtliche Variablen in einem struct mit dem Namen der zugewiesenen Variablen angelegt. Also mal wieder was dazu gelernt
Gruß Jan
|
|
|
punsel |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 27
|
 |
|
 |
Anmeldedatum: 23.01.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.12.2009, 15:43
Titel:
|
 |
Danke euch fuer die Antworten!
ich habe mich fuer die "Dummy.Loesung" entschieden und einfach ein kleines externes Prograemmchen benutzt, mit der ich datennamen stapelweise umbenennen konnte. Danach habe ich die Daten einfach ohne zusaetzliche Operationen in Matlab eingelesen - siehe da, mein Problem ist geloest...
Ist zwar nicht gerade elegant, aber da ich es mit einer Loesung sehr, sehr eilig hatte, war ich erstmal zufrieden.
Falls jemand natuerlich noch die ultimative idee hat, wie so etwas zu machen ist, bin ich weiterhin fuer alle Vorschlaege offen. So wie ich es im Moment sehe, sind die in Matlab notwendigen Operationen allerdings auch nciht gerade viel eleganter, als externes umbenennen...
Vielen Dank nochmal!
Der Lars
|
|
|
|
|
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.
|
|