|
|
|
Variablenrückgabe mit fsolve? |
|
| Borste |

Forum-Fortgeschrittener
|
 |
Beiträge: 56
|
 |
|
 |
Anmeldedatum: 18.04.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.07.2017, 11:57
Titel: Variablenrückgabe mit fsolve?
|
 |
Hallo Leute,
ich stehe vor folgendem Problem. Benutze fsolve zum Lösen eines Gleichungssystems und möchte innerhalb der function myfun die Variable c separat ermitteln und danach an mein Hauptprogramm zurückgeben. Der Haken an der Sache: ich möchte keine globalen Variablen verwenden. Ein vereinfachtes Beispiel meiner Funktion
Gibt es irgendeine Möglichkeit, die Variable c über die fsolve-function an mein Hauptprogramm zurückzugeben?
Vielen Dank schonmal!
|
|
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 24.07.2017, 12:32
Titel:
|
 |
Hallo,
das c für die Lösung x bekommst du als zweites Rückgabeargument:
Grüße,
Harald
|
|
|
|
| Borste |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 56
|
 |
|
 |
Anmeldedatum: 18.04.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.07.2017, 12:41
Titel:
|
 |
okay, mein beispiel war schlecht.. : ) Was ist, wenn mein fsolve diese Form hat:
[x,fval,exitflag,output,jacobian] = fsolve(__) ??
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 24.07.2017, 13:44
Titel:
|
 |
Hallo,
dann ist fval dein c.
Grüße,
Harald
|
|
|
|
| Borste |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 56
|
 |
|
 |
Anmeldedatum: 18.04.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.07.2017, 13:46
Titel:
|
 |
|
Und wenn ich dann nicht nur eine Variable c habe, sondern mehrere Variablen a,b,c?
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 24.07.2017, 14:13
Titel:
|
 |
Hallo,
sorry, ich hatte das anfangs falsch gelesen. Bitte vergessen, was ich geschrieben hatte.
Es gibt zwei Möglichkeiten:
a) die Variable(n) außen sichtbar machen, z.B. durch Verwendung von nested functions, globalen Variablen, assiginin etc.
b) nach Abschluss der Funktion die Variablen nochmal neu aus F errechnen.
Meine bevorzugte Variante wäre b). Wenn du die Berechnung von c aus myfun in eine weitere Funktion auslagerst, dann ist das nur eine zusätzliche Zeile nach fsolve.
Grüße,
Harald
|
|
|
|
| Borste |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 56
|
 |
|
 |
Anmeldedatum: 18.04.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.07.2017, 15:53
Titel:
|
 |
die a) Varianten verstehe ich, aber eigentlich wollte ich solche Möglichkeiten ja vermeiden, besonders globale Variablen.
die b) Variante verstehe ich noch nicht so richtig. Wie müsste denn die weitere Funktion aussehen, die auf F in der fsolve-function nachträglich zugreifen kann?
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 24.07.2017, 16:11
Titel:
|
 |
Hallo,
das war so gemeint:
Entgegen meines Vorschlags muss computeC nicht aus myfun aufgerufen werden. c wird dort ja ohnehin nicht weiter verwendet.
Grüße,
Harald
|
|
|
|
| Borste |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 56
|
 |
|
 |
Anmeldedatum: 18.04.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.07.2017, 11:19
Titel:
|
 |
|
achso, verstehe. Ist aber ein vereinfachtes Beispiel von mir, ich muss das c schon in der solve-function berechnen. Habe jetzt aber ein paar Ideen und Ansätze, wie es eventuell klappen könnte. Danke
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 25.07.2017, 17:20
Titel:
|
 |
Hallo,
sollten noch Probleme auftreten, dann bitte anhand eines Beispiels, das die konkrete Situation besser wiedergibt, erläutern.
Grüße,
Harald
|
|
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|