Es ist aus den Code-Ausschnitten nicht zu sehen, auf welche Schleife die beiden BREAKS wirken.
Zitat:
Nur mit diesen werden die berechneten Werte ausgegeben.
Das verstehe ich nicht. Mit welchen werden Werte ausgegeben?
Zitat:
zum Ausgang kopiert.
???
So weit ich das sehe, kann die Funktion Deines Programm aus den gezeigten Zeilen nicht vollständig erschlossen werden. Deswegen wird es nicht möglich sein, so das Problem zu finden. Bitte poste den ganzen relevanten Code.
Die Ausgabe des 3. und 4. Outputs wird nur dann definiert, wenn "wink[m] != 0" logisch falsch ist. Wenn "wink[m]" also ungleich Null ist, wird das mxCreateDoubleMatrix gar nicht erreicht, da ja bereits vorher die FOR-Schleife per "break" verlassen wird.
Ne leider doch nicht, so schmiert es mir einfach ab...
Ich will aber die Schleife verlassen und die Werte bis
wink[m]!=0 erriecht wurde ausgeben lassen.
Was muss ich da ändern?
Ich will aber die Schleife verlassen und die Werte bis
wink[m]!=0 erriecht wurde ausgeben lassen.
"Erriecht"? Vielleicht liegt's an Deiner Nase? ;-)
Wie wäre es, wenn Du die plhs[2] und plhs[3] nach der Schleife erzeugst? Dann müssetst Du noch berücksichtigen, dass eventuell kein einizger Wert gefunden wurde.
Und wie berücksichtige ich jetzt, dass evtl kein einziger Wert
erzeugt wird?
Das file hat 4 Ausgabeparameter, 2 davon entstehen immer.
Die beiden letzt genannten nicht immer.
Im m-file bekomme ich das meiner Meinung nach mit
Also leere Matrix zurückliefern, wenn nichts gefunden wurde - siehe "find(1:10 == 0)".
Wenn m==1, liefert "mxCreateDoubleMatrix(1, m-1, mxREAL)" eine leere [1 x 0] Matrix -- ist das gewollt?
NARGOUT entspricht übrigens der C-Mex Variablen "nlhs".
"varargout(1:nargout)" zu belegen ist damit das gleiche wie "plhs[0]" bis "plhs[nlhs-1]" zu belegen.
Es sieht so aus, als hättest Du plhs[2] und plhs[3] mehrfach erzeugt - stimmt das? Das wäre ein Memory-Leak, da die alten mxArrays nicht wieder freigegeben wurden. Zudem wäre die equivalent zum nicht-pre-allocierten Belegen von Arrays in Matlab.
mxCreateDoubleMatrix am Schluß zu aufzurufen löst dieses Problem aber automatisch mit auf.
Wenn m==1, liefert "mxCreateDoubleMatrix(1, m-1, mxREAL)" eine leere [1 x 0] Matrix -- ist das gewollt?
Nein, das war nicht gewollt und wurde von mir übersehen. Vielen DANK
Zum 2.ten:
Ja es kann sein, dass diese Werte mehrfach erzeugt werden und ich sie dann überschreibe, das wäre das letzte in diesem File was gelöst werden muss.
DANKE
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.