WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Beispiel läuft nicht (mehr)

 

thwillms@gmail.com

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.11.2017, 14:20     Titel: Beispiel läuft nicht (mehr)
  Antworten mit Zitat      
Hallo,

das folgende Beispiel lief zuerst,

Code:

function xdot=f(x,t)
r = 0.25;
k = 1.4;
a = 1.5;
b = 0.16;
c = 0.9;
d = 0.8;
xdot(1)=r*x(1)*(1-x(1)/k)-a*x(1)*x(2)/(1+b*x(1));
xdot(2)=c*a*x(1)*x(2)/(1+b*x(1))-d*x(2);
endfunction

x0=[1;2];
t = linspace (0, 50, 200)';
#is integrated with the command
x=lsode ("f",x0,t);
#producing a set of 200 values stored in the variable x. Note that this example takes advantage of the fact that an assignment produces a value to store the values of the output times in the variable t directly in the function call The results can then be plotted using the command
plot (x, t)


aber jetzt liefert es eine merkwürdige Warnung und Fehlermeldung:
warning: function name 'f' does not agree with function filename
'E:\Octave\diff_eq_01_problem.m'
error: 'x' undefined near line 18 column 11
error: called from
diff_eq_01_problem at line 18 column 8
>>

Ich sehe nicht das Problem. Dies Beispiel wird mehrfach genau so angegeben..

Can anyone help me?

Thanks


AndyydnA

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.11.2017, 18:45     Titel:
  Antworten mit Zitat      
Klar kann dir geholfen werden.

Es gibt in GNU Octave "function files" und "script files" (im Handbuch findest du unter den zwei Begriffen mehr infos)

"function files" enthalten Funktionsdekalrationen und der Name der Funktion ("f" in deinem Beispiel) muss identisch sein zum Dateinamen (ohne.m). Eine Funktion "tu_etwas" MUSS also in einer Datei "tu_etwas.m" stehen, wenn es ein "function file" sein soll. Octave erkennt dies, wenn der erste Befehl in der Datei eine Funktionsdeklaration ist.

Und genau das ist bei dir der Fall: "function" steht ganz am Anfang und die Datei heißt diff_eq_01_problem.m und die Funktion "f".

Aber da du ja noch anderen Code mit in der Datei hat gehe ich davon aus, dass du du ein "script file" erstellen willst. Füge dazu ganz am Anfang der Datei ein "1;" (ohne Anführungszeichen). Dann denk Octave nicht mehr es sei ein "function file"

Gruß Andy
 
thwillms@gmail.com

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.11.2017, 09:35     Titel: Beispiel läuft nicht (mehr)
  Antworten mit Zitat      
Hallo Andy,

Danke. Ich hatte mich schon gewundert, dass es bei der Kommandozeilenversion lief, aber nicht beim Skript. Das war mir aber erst später aufgefallen.

Ich kenne Octave seit gestern und möchte damit zum einen Matlab (das ich nur vom Hören kenne), zum anderen Polymath (http://www.polymath-software.com/demos/demos.htm) ersetzen. Beide sind ja kommerziell.

Grüße

Thomas
 
Tomagic2000
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 22.12.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.02.2018, 11:01     Titel:
  Antworten mit Zitat      
Danke damit ist die Frage beantworte.

Grüße

Thomas
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.