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 in For-Schleife erzeugen

 

atze

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.12.2010, 20:14     Titel:
  Antworten mit Zitat      
ja da hab ich mich wohl unklar ausgedrückt.....

wie du schon richtig gesagt hast will ich in der folgenden schleife symbolisch nach den erzeugten variablen ableiten.


Mfg


dany2k3k
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 66
Anmeldedatum: 02.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.12.2010, 00:28     Titel:
  Antworten mit Zitat      
dazu brauchst du die Symbolic Math Toolbox, MAtlab kann von Haus aus KEIN symbolisches rechnen. Du benötigst für symbolische Variablen einen eigenen Datentyp, "sym"

"symbolische" variablen werden beispielsweise mit

syms x
syms blabla
syms keke

etc. erstellt.

um diese in der for-schleife dynamisch zu erstellen,würde beispielsweise


for i=1:7
eval(['syms x',int2str(i)])
end

das gewünschte Ergebnis liefern
vereinfacht gesagt,nimmt eval einen String, und interpretiert ihn als Befeh.
so erstellst du oben einen string 'syms x1' , syms x2 etc.-. die dann mit eval als befehl ausgeführt werden.

Weiters verwendet die symbolic math toolbox , so weit ich weiß, die maple befehle..

so sollte dann beispielsweise

diff(x1,x1) (leite x1,nach x2 ab)
das ergebnis 1 liefern

WOALLA
________________________
diff(x1,x1)
ans =
1

diff(x1,x2)
ans =
0
________________________

Du kannst nur nach variablen ableiten,die davor auch definiert wurden glaube ich., also mit syms..


Hier habe ich noch eine Einleitung in die symbolic math toolbox gefunden

http://www.esi.ac.at/~susanne/MatlabSkriptum.pdf , ab seite 37


Hoffe das hilft dir etwas.

LG: Daniel
Private Nachricht senden Benutzer-Profile anzeigen
 
atze

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.12.2010, 13:39     Titel:
  Antworten mit Zitat      
Hey dany,

danke für deine Antwort . Genau danach hab ich gesucht.

Nun hab ich aber noch das Problem das ich auf die Variablen über eine zweite Schleife zugreifen möchte und nicht einzeln x1,x2....eintippen möchte.

Ne idee wie ich das realisieren könnte?


Mfg
 
dany2k3k
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 66
Anmeldedatum: 02.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.12.2010, 14:11     Titel:
  Antworten mit Zitat      
Hallo Atze,

das geht wieder genau so. du musst einfach einen String dynamisch erzeugen,und den mit eval als befehl ausführen lassen. hier ein minimalbeispiel


for i=1:10
eval(['syms x',int2str(i)]);
end

for i=1:10
for j=1:10
eval(['diff(x',int2str(i),',x',int2str(j),')'])
end
end

die erste schleife erzeugt einfach mal die variablen x1 bis x10. Die danach folgende doppelte for-schleife leitet x_i nach x_j ab.

mit komma kannst du einzelne stringfetzen zu einem gesamtstring zusammenbauen. jeder stringfetzen steht zwischen 2 hochkommas, eine serie von stringfetzen ergibt den gesamt string. achtung: bei int2str(i) brauchst du keine hochkommas links und rechts davon,da es sowieso schon als string erkannt wird.


Hoffe das obige Beispiel hilft dir etwas

LG
Daniel
Private Nachricht senden Benutzer-Profile anzeigen
 
atze

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.12.2010, 14:54     Titel:
  Antworten mit Zitat      
Hey daniel,


ich danke dir ist genau was ich gesucht habe.


Mfg
 
dany2k3k
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 66
Anmeldedatum: 02.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.12.2010, 15:48     Titel:
  Antworten mit Zitat      
gern Wink
btw..


falls du dann befehle brauchst,musst du nach maple befehle suchen,da die symbolic math toolbox im wesentlichen auf einem maple kern beruht

ich ändere dann mal den status auf beantwortet


LG
Daniel
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite Zurück  1, 2

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.