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

Matrizen einlesen

 

try_and_error
Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 18.08.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.09.2010, 00:22     Titel: Matrizen einlesen
  Antworten mit Zitat      
Hallo,

ich habe ganz viele Matrizen, die vorne alle gleich heißen (Matrix und dann ne Zahl), ich hab die mit eval erstellt. Allerdings sind danach einige daraus gelöscht worden, sodass ich sie so nicht mehr einlesen kann:

Code:

for d=1:1000
s = ['Matrix' int2str(d)];
matrizen{d}=eval(s);      
end
 


Wie kann ich sie jetzt alle einordnen?

Die Reihenfolge ist egal, der Name ist auch egal - hauptsache ich krieg sie alle in ein Array... aber wie?

Danke im voraus!

try_and_error
Private Nachricht senden Benutzer-Profile anzeigen


Linus
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 69
Anmeldedatum: 30.08.10
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 16.09.2010, 03:18     Titel: Re: Matrizen einlesen
  Antworten mit Zitat      
Mal abgesehen davon, dass das mit eval() und durchnummerierten Workspace-Variablen ganz übler Murks ist, versuch es doch mal so:

Code:

for j=1:1000
  s = sprintf('matrizen{%d} = Matrix%d;', j, j);
  eval(s);      
end
 

_________________

RWTH - Mindstorms NXT Toolbox - free & open source

Zuletzt bearbeitet von Linus am 16.09.2010, 03:23, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
try_and_error
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 18.08.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.09.2010, 03:22     Titel:
  Antworten mit Zitat      
Hmm, klappt nicht Sad er sagt, dass er Matrix1 nicht kennt (die gibts ja auch nicht)..
Private Nachricht senden Benutzer-Profile anzeigen
 
Linus
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 69
Anmeldedatum: 30.08.10
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 16.09.2010, 03:22     Titel:
  Antworten mit Zitat      
Ach, und was mir gerade noch einfällt...

Du kannst dir mit whos ne Liste aller noch vorhandenen Variablen machen, und die dann abarbeiten. Dazu diese Syntax benutzen:

Code:

s = whos('Matrix*');
 



Oder, wenn es eh schon gerade quick & dirty sein soll, und dir das Beispiel von oben abstürzt (weil Matrizen fehlen):

Code:

for j=1:1000
  s = sprintf('matrizen{%d} = Matrix%d;', j, j);
  try
    eval(s);      
  catch
     % ha, wir ignorieren den fehler!
  end
end
 


Ich brauche hoffentlich nicht nochmal zu betonen, dass das gefährlich ist Smile
_________________

RWTH - Mindstorms NXT Toolbox - free & open source
Private Nachricht senden Benutzer-Profile anzeigen
 
try_and_error
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 18.08.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.09.2010, 03:25     Titel:
  Antworten mit Zitat      
OK, klappt Very Happy aber jetzt hab ich dazwischen leere Matrizen... kann ich die wieder löschen und alles "zusammenschieben"?
Private Nachricht senden Benutzer-Profile anzeigen
 
try_and_error
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 18.08.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.09.2010, 03:36     Titel:
  Antworten mit Zitat      
Oder gibt es eine Möglichkeit, die Matrizen alle neu einzulesen und damit umzubenennen, sodass die Zahlen wieder durchlaufen und ich sie einlesen kann?

Ich brauch die ganzen leeren Matrizen nämlich nicht Confused
Private Nachricht senden Benutzer-Profile anzeigen
 
try_and_error
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 18.08.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.09.2010, 15:39     Titel:
  Antworten mit Zitat      
Ist es möglich, alle Matrizen, die gleich anfangen, zB alle mit "Matrix", in ein array zu lesen, ohne, dass die Zahl hinten stimmen muss? Die Reihenfolge ist auch egal, wie diese Matrizen eingelesen werden.

Oder hat jemand einen Tipp, wie ich das schnell per Hand machen kann? Schließlich sind es etwa 500 Stück Sad
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.