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

ode und function handle

 

casi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.05.2014, 10:44     Titel: ode und function handle
  Antworten mit Zitat      
Ich hab zwei m-files:
das erste m-file (par.m) sieht so aus:
Code:
function fHandle = par(p)
function field = f(t, N)
field = [0,0]
field(1) = ....
field(2) = ...
end

fHandle = @f;

end

 



Mein main m-file ruft das erste m-file dann auf:

Code:

...

f = par(planet)

[t,N] = ode23(@f,[initial_time,end_time],[0.2,0.2]);

 



Ich bekomm dann die folgende Fehler-Meldung:

"f" was previously used as a variable,
conflicting with its use here as the name of a function or command.
See MATLAB Programming, "How MATLAB Recognizes Function Calls That Use Command Syntax" for
details.

Versteht jemand den Fehler den ich mache?
Besten Dank für Rückmeldungen!


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 04.05.2014, 11:05     Titel:
  Antworten mit Zitat      
Hallo,

da passt einiges nicht zusammen. Aus der Hilfe sollte an sich hervorgehen, wie das generell aussehen muss.

Hier würde ich sagen, reicht folgendes:
Code:
function field = f(t, N)
field = [0;0]
field(1) = ....
field(2) = ...
end

und
Code:
[t,N] = ode23(@f,[initial_time,end_time],[0.2;0.2]);


Mir ist nicht klar, was par und planet in diesem Zusammenhang bezwecken sollen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Casi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.05.2014, 11:21     Titel:
  Antworten mit Zitat      
Danke Harald für die Antwort,

ich hab zuerst noch eine Struktur definiert, welche ich planet genannt habe.

also:

Code:

planet = struct();
...
...


f = par(planet);

[t,N] = ode23(@f,[initial_time,end_time],[0.2,0.2]);


 


Wenn ich jetzt die einte Zeile also weglasse, dann wird mein m-file mit den Diff.gleichungen gar nicht aufgerufen (ist ja in einem anderen m-file, nämlich im par.m) und f ist nicht auch nicht definiert.

Ich hoff, es ist jetzt verständlicher was ich meine.
 
Casi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.05.2014, 11:25     Titel:
  Antworten mit Zitat      
Danke Harald für die Antwort,

ich hab zuerst noch eine Struktur definiert, welche ich planet genannt habe.

also:

Code:

planet = struct();
...
...


f = par(planet);

[t,N] = ode23(@f,[initial_time,end_time],[0.2,0.2]);


 


Wenn ich jetzt die einte Zeile also weglasse, dann wird mein m-file mit den Diff.gleichungen gar nicht aufgerufen (ist ja in einem anderen m-file, nämlich im par.m) und f ist nicht auch nicht definiert.

Ich hoff, es ist jetzt verständlicher was ich meine.
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 04.05.2014, 11:47     Titel:
  Antworten mit Zitat      
Hallo,

was soll denn diese Struktur mit der DGL zu tun haben?


Funktionsname und Dateiname sollten immer übereinstimmen, d.h. entweder du nennst die Datei f.m oder du ersetzt f überall durch den Dateinamen.

Achte bite auch darauf, deine Beiträge nicht doppelt abzuschicken.

Grüße,
Harald
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 - 2025 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.