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

Variablen mit for-Schleife produzieren

 

Alex_A

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.07.2012, 16:42     Titel: Variablen mit for-Schleife produzieren
  Antworten mit Zitat      
Hallo,

hab diese Frage in keinem anderen Forum gestellt.

Ich würde mit einer for-Schleife gerne Variablen produzieren.

Ungefähr so:

Code:

for i=1:3
    a_i=1
end
 

Und ideal wär, wenn dann folgendes rauskäm:
3 Variablen:

a_1=1
a_2=2
a_3=3

Gibts da sowas in der Art, oder wie macht ihr das?
Danke schon mal und schöne Wochenender,
Alex


Sirius3
Forum-Guru

Forum-Guru


Beiträge: 441
Anmeldedatum: 11.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.07.2012, 18:08     Titel:
  Antworten mit Zitat      
Hallo Alex,

wir machen das nie, und ich hoffe ich spreche hier vielen aus dem Herzen.
Es ist immer sinnvoller, statt verschiedener Variablennamen die Werte
in einem Vektor zu speichern:
Code:
for i=1:3
    a(i)=1;
end;


Sag uns, warum die Variablennamen brauchst und wir sagen Dir,
warum Du sie nicht brauchst.

Dir auch ein schönes Wochenende,
Sirius
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: 07.07.2012, 14:46     Titel:
  Antworten mit Zitat      
Hallo Sirius3,

Ja, Du sprichst mir aus dem Herzen!
Ein schönes Wochende auch für Dich und an alle anderen Leser!

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Caravaggio
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 86
Anmeldedatum: 20.04.12
Wohnort: Braunschweig
Version: R2012a
     Beitrag Verfasst am: 07.07.2012, 23:28     Titel:
  Antworten mit Zitat      
Naja, es gibt schon Momente wo es nützlich ist...

Probier es mal mit eval

Code:

for i = 1:3
    eval(['a_',num2str(i),' = ',num2str(i)])
end;
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Sirius3
Forum-Guru

Forum-Guru


Beiträge: 441
Anmeldedatum: 11.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.07.2012, 09:51     Titel:
  Antworten mit Zitat      
Hallo Caravaggio,
wie gesagt, nenn mir den Moment...

Und für alle, die es einigermaßen richtig machen wollen,
hier der korrekte Code, der die wenigsten Nebenwirkungen hat:
Code:
set_var=@(varname,value)assignin('caller',varname,value);
for i=1:3
  set_var(['a_' num2str(i)],i);
end;


Grüße
Sirius
Private Nachricht senden Benutzer-Profile anzeigen
 
Caravaggio
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 86
Anmeldedatum: 20.04.12
Wohnort: Braunschweig
Version: R2012a
     Beitrag Verfasst am: 08.07.2012, 10:57     Titel:
  Antworten mit Zitat      
Für sequentielle Geschichten würde ich auch eher nen Array oder eine Cell verwenden. Ich fand es für mich persönlich mal relativ praktisch, weil ich aus einer Funktion N Intervalle bekam und diese dann in der Art "Messdatenkanal_Start_Ende" abspeichern konnte. Lässt sich sicherlich effizienter umsetzen, aber das war die übersichtlichste Methode für alle. Nicht immer wird nur mit MATLAB gearbeitet, sondern die *.mat werden in ein anderes Programm konvertiert um zB Messdaten einheitlich auszuwerden.

Wenn man es wirklich richtig machen möchte, dann darf man beide Versionen nicht anfassen (sagt ja selbst MathWorks...). Es gibt 10 Programmierer und es wird 10 Methoden geben, die das Problem zu lösen...
Private Nachricht senden Benutzer-Profile anzeigen
 
Alex_A

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.07.2012, 16:07     Titel:
  Antworten mit Zitat      
Danke für eure Antworten.

Zugegeben bin ich mit Matlab nicht vertraut und meine Herangehensweise ist bestimmt etwas plump.

Ich finds halt angenehmer, weil ich so den Überblick behalte (zwar nicht im Workspace aber zumindest im Kopf). Kann so jeder Variable direkt und auswendig ansprechen. Das hilft mir besonders, wenn die Zahl hinten eine Bedeutung hat, zB 1 entspricht 00:00-01:00 Uhr.

Lg,
 
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.