%meine Output-Funktion (die so erst mal nichts macht):
function status=myfun(t,x,flag) switch(flag) case 'init'
status=0;
case 'done'
status=0;
otherwise
status=0;
end end
%Lösen des Systems :
x0=[70];
ts=[010];
omega=6;
gamma=0;
options=odeset('MaxStep',0.01,'OutputFcn',@myfun);
ode45(@dglsys,ts,x0,options,omega,gamma);
Es geht mir hier nur mal um die richtige Syntax die ich verwenden muss, also nicht um etwas produktives (das was später rein soll wäre zu kompl. hier auszuführen). Ich habe schon etliche Variationen an myfun durchgeführt,aber die Fehlermeldungen kommen immer noch. Wo liegt mein Fehler?
PS: wenn man statt myfun 'odeplot' reinschreibt so funktioniert es, es liegt also nur an der myfun, doch in einigen bsp. habe ich auch so einen kontext gesehen.
ich bin zwar nicht so ganz mit dieser OutputFcn vertraut, es sieht allerdings so aus dass du der Funktion mehr Argumente als spezifiziert mitgibst.
Am besten lässt du dir erst mal die ganzen Übergabewerte ausgeben:
Es läuft ohne Fehler und ich habe folgendes herausbekommen :
t ist logischerweise der Zeitvektor und enthält als Zeilenvektor 4 Einträge, und entsprechend ist x ein zweikomp. Ortsvektor mit zwei Zeilen und vier Spalten.
nargin ist bei jedem Funktionsaufruf fünf. varargin{1} und varargin{2} geben die Werte von omega und gamma an (s. oberen Beitrag, Dämpfung und Schwingungsfrequ.).
Ich bin aber noch verwirrt, denn wenn ich varargin{k} mit k=3,4,5 in obigen myfun code verwende bekomme ich folgende Fehlermeldung :
Doch wenn nargin immer fünf ist, so müsste varargin doch auch fünf Einträge haben, oder ? Oder kann es sein, daß sich nargin auf alle übergebenen argumente (also einschl. t,x,flag) bezieht ?
nein, nargin ist die Anzahl aller Eingabevariablen. Da du aber eh schon 3 direkt abgreifst (t, x, flag), bleiben für varargin nur mehr 2 über.
MfG
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.