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

Lösungen aus dem solve-Befehl "ansprechen"

 

Patsch
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 08.04.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.04.2017, 15:31     Titel: Lösungen aus dem solve-Befehl "ansprechen"
  Antworten mit Zitat      
Hallo Smile
Ich habe den solve Befehl genutzt, um ein unterbestimmtes Gleichungssystem zu lösen. Hier ein reduziertes Beispiel:
Code:
T = sym('Tmp', [1,5]);
eq1 = T(1)+2*T(2) == 5
eq2 =     T(4)^2+ T(3) == 19
eq3 = T(5)+T(4)+T(3)-T(2)*T(1) == 10

z=solve([eq1,eq2,eq3],T(1),T(2),T(3));


Um auf die einzelnen Lösungen zugreifen zu können, müssen folgende Befehle ausgeführt werden:
z.Tmp1, z.Tmp2, z.Tmp3

Nun ist meine Frage: wie kann man das automatisieren, dass man für ein beliebiges N, welches sich im Algorithmus ergibt, die Lösungen z.Tmp1,...,z.TmpN ansprechen kann, ohne dies in der Konsole zu tun?
Ich habe auch schon ein paar Sachen ausprobiert, z.B. den Laufindex in einer Schleife erhöht und an den String Tmp gehängt und anschließend nach dem z. eingefügt (nach der Konvertierung mit str2num oder ähnlichem).

Für jeden Hinweis bin ich dankbar.
Viele Grüße
Patsch

[EDITED, Jan, Bitte Code-Umgebung verwenden - Danke!]
Private Nachricht senden Benutzer-Profile anzeigen


Friidayy
Forum-Century

Forum-Century


Beiträge: 225
Anmeldedatum: 17.12.13
Wohnort: ---
Version: R2012b
     Beitrag Verfasst am: 10.04.2017, 15:39     Titel:
  Antworten mit Zitat      
Hallo,

mir fällt auch nur die Lösung ein, die du bereits beschrieben hast. Hast du dabei mit der FUnktion eval gearbeitet? Gruß
Private Nachricht senden Benutzer-Profile anzeigen
 
Patsch
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 08.04.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.04.2017, 15:44     Titel:
  Antworten mit Zitat      
leider klappt es damit nicht.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 10.04.2017, 15:50     Titel:
  Antworten mit Zitat      
Hallo,

bitte beschreibe immer genau, was du versucht hast.

Folgendes sollte funktionieren:
Code:
z.(['Tmp' num2str(k)])

k kann dann in einer Schleife von 1 bis N laufen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Patsch
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 08.04.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.04.2017, 15:53     Titel:
  Antworten mit Zitat      
Hallo Harald,
danke für deine Antwort - es klappt!
Ich hatte bloß
s = ['Tmp',num2str(k)];
z.s
ausprobiert, also ohne den Klammern.

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