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

Cell_Array mit dynamischen Namen

 

ping
Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 09.08.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.10.2014, 20:32     Titel: Cell_Array mit dynamischen Namen
  Antworten mit Zitat      
Hallo,
mich interessiert ob und wie es möglich ist, einen dynamischen Namen für ein Cell-Array zu erzeugen.

Für Vektoren funktioniert das ja so:

Code:
 assignin ('base',['variable_' num2str(k)], irgendwas);


Ich bräuchte sowas hier:
Code:

k = 1;
while k < 5
for i = 1:1:3
Cell_Array_[num2str(k)]{1,i} =
end

k = k+1;
end
 


Wenn es auch nicht elegant ist aber ist das in Matlab zu realisieren?

Vielen Dank für eure Hilfe

-ping
Private Nachricht senden Benutzer-Profile anzeigen


Nras
Forum-Meister

Forum-Meister


Beiträge: 608
Anmeldedatum: 21.02.12
Wohnort: ---
Version: 7.12.0.635 (R2011a)
     Beitrag Verfasst am: 21.10.2014, 22:42     Titel:
  Antworten mit Zitat      
Hallo,

sowas ist mit einer Kombination von eval() und sprintf() möglich, aber, wie du selbst schreibst, nicht gerade elegant oder gut lesbar. Auch kann man mit den so erstellten vielen Variablen nicht bequem weiter automatisiert arbeiten, außer durch weitere Kombinationen von eval() und sprintf():
Code:
k = 1;
while k < 5
    for i = 1:1:3
        wert = 1:k*i; % irgendeine Rechnung
        cmd = sprintf('Cell_Array_%d{1,%d} = wert', k, i);
        eval(cmd);
    end
    k = k+1;
end


Ich schlage vor, einfach um alles rum noch ein cell array zu legen, sodass du nicht die Variablen Cell_Array_1, Cell_Array_2, Cell_Array_3 und Cell_Array_4 hast, sondern die bequem mit Cell_Array{1}, Cell_Array{2} usw. ansprichst. Dann ist der Index auch wirklich ein Index und kann eben als solcher benutzt werden. In diesem Falle hilft:
Code:
k = 1;
while k < 5
    for i = 1:1:3
        wert = 1:k*i; % irgendeine Rechnung
        Cell_Array{k}{1,i} = wert;
    end
    k = k+1;
end


Nun entspricht also beispielsweise Cell_Array_2 genau Cell_Array{2}. Beispiel
Code:
all(Cell_Array_2{1,3} == Cell_Array{2}{1,3}) % true


Das könnte für dich eine Überlegung wert sein.

Viele Grüße,
Nras.
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.