Ich berechne in einem separatem m-File symbolisch einen Vektor und rufe ihn im Eingabe File mittels "funktion" auf.
Nach dem "function" Befehl weise ich dem Vektor die Werte im Eingabe File zu.
Hier der Auszug aus dem Eingabe File:
Das Problem ist aber das er die Werte nicht für den mittels "funktion" berechneten Vektor [hr2Strich] übernimmt, der Vektor bleibt für die weiteren Berechnungen symbolisch.
Zu Beginn bei "subs(hr2Strich,..." funktioniert es, am Ende bei "subs(fZr,..." nicht, dort sind die Variablen "lK,lU,lO,h,lFB,lS1,lS2,lS3,lS4,DB,m1,m2,m3,m4" nach wie vor in der Gleichung.
Ich bin mir sicher das es etwas damit zu tun hat, dass der Vektor "hr2Strich" der auch in der "function" "fZr" verwendet wird zuvor symbolisch berechnet wird aber warum die Variablen dann in "fZr" nicht ersetzt werden verstehe ich nicht.
Vielleicht hat auch jemand eine bessere Idee wie ich das Eingabefile aufbauen kann, denn das Ersetzen der Werte mittels subs ist eigentlich auch umständlich und anfällig dafür Fehler zu machen.
Am besten wäre es wenn ich die Werte nur einmal eingeben müsste und sie würden für die gesamt Berechnung verwendet werden.
die von dir verwendete Notation von subs ist nicht in der Doku enthalten. Ich würde mich also an die offizielle Syntax mit {} statt [] halten, selbst wenn es funktionieren würde.
Ansonsten ist es schwierig, dir zu helfen, da man ja das Beispiel nicht nachvollziehen kann.
Die Frage wäre aber: warum rechnest du überhaupt symbolisch, wenn du am Ende doch nur Werte einsetzt?
Ich muss einen Vektor, in meinem Fall "hr" genannt 2 mal und eine Matrix einmal ableiten. Und das geht nur symbolisch, da die Ableitungen der Vektoren bei eingesetzten Zahlen ja 0 ergeben würden.
Nachträglich muss ich aber zur Berechnung die Werte einsetzen.
Da ich ein absoluter MATLAB Neuling bin kann sein das ich das Konzept von MATLAB falsch verstehe aber es sollte doch möglich sein einen Vektor/Matrix abzuleiten und dann die Werte einzusetzen oder?
Gradienten kann man auch numerisch annähern, z.B. mit
(f(x + dx) - f(x - dx)) / (2*dx) für die erste Ableitung und
(f(x + dx) + f(x - dx) - 2*f(x)) / (dx^2) für die zweite Ableitung.
Und ja, das sollte an sich möglich sein. Dein Code ist aber zulänglich als dass ich auf die Schnelle nachvollziehen könnte, wo das Problem liegt.
Ich bin folgender maßen vorgegangen:
1. Zuweisen der Werte zu den Variablen im Eingabe File
2.Durchführen der symbolischen Berechnung in einem "function" File
2.1 In dem "function" File habe ich die Variablen erneut mit "syms" definiert
3.Ersetzen der Variablen im Eingabe File gleich nach aufrufen der "function" mittels "subs" ("Name des Vektors")
Danke noch mal für die Hilfe.
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
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.