|
|
embedded m-file, Nullstellen |
|
Gast |
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.08.2009, 09:16
Titel: embedded m-file, Nullstellen
|
|
Hallo zusammen,
ich habe eine Frage bezüglich folgenden Problems:
Innerhalb eines embedded matlab function block die Nullstellen von einem Polynom berechnen. Dazu wollte ich die Matlab-Funktion roots() verwenden. Beim ausführen erhalte ich aber die Fehlermeldung "ROOTS is not supported in Embedded MATLAB.Function".
kann ich das irgendwie umgehen, oder gibt es alternativen zu dieser Funktion?
Vielen Dank für eure Hilfe
Martin
|
|
|
|
|
Gast |
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.08.2009, 10:43
Titel:
|
|
Hallo,
also ich habe jetzt schon mal rausgefunden, dass man fzero() doch verwenden kann, wenn man es eben als extern deklariert.
wie kriege ich jetzt aber mein polynom als funktion hin, so dass fzero() des verarbeiten kann?
habs schon mit inline() versucht, da hab ich aber das problem, dass ich noch eine zusätzliche variable übergeben muss, da der lineare anteil des polynoms davon abhängt...
|
|
|
Gast |
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.08.2009, 12:30
Titel:
|
|
So, habe jetzt wieder weiterprobiert, und roots() scheint wohl doch zu gehen, wenn man es mit eml.extrinsic einbindet.
Als Ergebnis erhalte ich hier aber einen Vektor (z.B. 3x1).
Wenn ich jetzt nur die 3. Nullstelle haben möchte, z.B.
dann erhalte ich die Fehlermeldung "Subscripting into an mxArray is not supported."
Ich kann auch nicht einfach sagen
y=u
und dann in simulink mir aus dem Vektor den gewünschten Wert rausholen, da kriege ich nämlich die Fehlermeldung "Function output 'y' cannot be of MATLAB type."
kann mir bitte jemand weiterhelfen?
|
|
|
Titus |
Forum-Meister
|
|
Beiträge: 871
|
|
|
|
Anmeldedatum: 19.07.07
|
|
|
|
Wohnort: Aachen
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.08.2009, 13:44
Titel:
|
|
Hallo,
Embedded MATLAB hat ein paar Besonderheiten: bei einer extrinsic function "weiss" der EML Block nicht, was für ein Ergebnis zurückkommt und geht daher vom allgemeinsten Fall aus (mxArray). Ausweg: vorher bescheid geben, was für ein Ergebnis erwartet wird:
Ciao,
Titus
|
|
|
|
|
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 - 2024
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.
|
|