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

dynamische Zuweisung von Variablenwerten

 

gianni81

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.04.2010, 11:26     Titel: dynamische Zuweisung von Variablenwerten
  Antworten mit Zitat      
Hi,

ich sitze gerade auf dem Schlauch.
Wie kann ich innerhalb einer Schleife Variablenwerte zuweisen, also in der Form:
aktuelle_variable = 'variable' t,
wobei t der Laufindex der Schleife ist. Ich möchte also über einen dynamischen Variablennamen auf den Wert zugreifen und diesen zuweisen.

Zu meinem konkreten Beispiel:
ich habe 20 Variablen mit den Namen 'intens_' num2str(t).
sowas wie die Zuweisung:
act_val = ['intens_' num2str(t)] funktioniert leider nicht. Abhilfe?

Danke für eure Hilfe!

Gruß, Gianni


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 03.04.2010, 12:08     Titel:
  Antworten mit Zitat      
Hallo,

du brauchst dafür eval

Code:

act_val = eval(['intens_' num2str(t)]);

 
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.04.2010, 12:12     Titel:
  Antworten mit Zitat      
Hi,

vielen Dank, funktioniert!

Frohe Feiertage, Gruß,
Gianni
 
sebastian1013
Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 15.02.11
Wohnort: ---
Version: R2011b
     Beitrag Verfasst am: 01.03.2011, 00:28     Titel:
  Antworten mit Zitat      
Hallo,
ich habe ein Frage zu diesem Thema.
Und zwar wollte ich mit:

Code:

n=5
i=1:n
eval(['M_' num2str(i) ' = zeros(size(SX,1),size(SX,2)) ']);
 


die matrices M_1 bis M_5 erzeugen, hat auch alles geklappt,
jedoch kann ich auf z.B. M_3 mit einer schleife zugreifen, da meine 3
wiederrum durch eine andere Variable, z.B j aufgerufen werden soll.
Kann mir jemand helfen, wie ich diesen Zugriff hinbekomme??

Vielen Dank für Eure zahlreichen Antworten!

Beste Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 01.03.2011, 02:28     Titel:
  Antworten mit Zitat      
Hallo Sebastian,

Wieso umständlich Variablen erzeugen, die den Index im Namen tragen, um dann umständlich wieder darauf zuzugreifen?!
Einfacher, schneller, sicherer und effizienter:
Code:
M = cell(1, 5);
for i = 1:5
  M{i} = zeros(size(SX,1),size(SX,2));
end

Nun kannst Du auch genause einfach wieder auf M{j} zugreifen.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
sebastian1013
Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 15.02.11
Wohnort: ---
Version: R2011b
     Beitrag Verfasst am: 01.03.2011, 16:12     Titel:
  Antworten mit Zitat      
cell arrays sind ja garnicht mein ding, aber es funzt einwandfrei:)
dankeschön!
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.