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

2 function handle in eine weitere function handle übergeben

 

MatlabNoob2017
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 09.07.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.07.2017, 00:27     Titel: 2 function handle in eine weitere function handle übergeben
  Antworten mit Zitat      
Hi, ich hoffe mir kann jemand helfen, denn ich komme irgendwie nicht auf die richtige Lösung. Sad

Ich soll ein nichtlineares Fitproblem für eine Schwingung in zwei Dimensionen berechnen.

Die Schwingung wird dabei durch die Funktionen

fs(t,ω,ϕ)=sin(ω*t+ϕ)
f(x,y,A,ω1,ϕ1,ω2,ϕ2)=A*fs(x,ω1,ϕ1)fs(y,ω2,ϕ2)
beschrieben.

Ich habe ein Problem, mit den function handles, denn ich bekommen immer eine Fehlermeldung, dass die Größe der "f" function nicht gleich ist wie die xd bzw. yd Werte.
Was soll ich nur tun??? hoffentlich kann mir jemand dabei helfen... Danke schon mal...

%Das ist mein bisheriges Programm, wo aber bestimmt eine Menge Fehler drinnen sind. Sad

Code:

d = load('schwing2d.dat'); %laden der Schwingungsdatei

xd = d(:,1);   %x-Werte
yd = d(:,2);  %y-Werte
zd = d(:,3);   %Amplitude
xyd = d(:,[1,2]);

A = 2.2;
om1 = 1;
phi1 = 0.7;
om2 = 2;
phi2 = 0.5;
a_start = [A,om1,phi1,om2,phi2];

f_s = @(om,t,phi) sin(om(1)*t(1)+phi(1));
f = @(om,xd,phi) A.*f_s(om1,xd,phi1).*f_s(om2,yd,phi2);

a_fit = nlinfit(xd,yd,f,a_start);
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 10.07.2017, 12:52     Titel: Re: 2 function handle in eine weitere function handle überg
  Antworten mit Zitat      
Hallo MatlabNoob2017,

Bitte poste immer eine Kopie der vollständigen Fehlermeldung, anstatt sie grob nachzuerzählen. Dann wüsste man als Leser auch, in welcher Zeile das Problem auftritt.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
MatlabNoob2017
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 09.07.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.07.2017, 22:55     Titel:
  Antworten mit Zitat      
Danke für den Hinweis... also die Fehlermeldung lautet:

Error using nlinfit (line 211)
MODELFUN must be a function that returns a vector of fitted values the same
size as Y (91-by-1). The model function you provided returned a result that
was 1-by-1.

One common reason for a size mismatch is using matrix operators (*, /, ^) in
your function instead of the corresponding elementwise operators (.*, ./, .^).

Error in schwing2d (line 18 )
a_fit = nlinfit(xd,yd,f,a_start);

Error in (line 1)
schwing2d
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 12.07.2017, 19:17     Titel: Re: 2 function handle in eine weitere function handle überg
  Antworten mit Zitat      
Hallo MatlabNoob2017,

Du möchtest doch die Parameter einer Funktion fitten. Die bisherigen Funktionen f_s und f nehmen aber die Parameter schon als Inputs an. Ich denke z.B. "om" hat nichts in den Inputs zu suchen, oder?
Ich empfehle, erstmal mit den einfacheren Beispielen aus der Dokumentation von nlinfit zu beginnen. Versuche daran herum zu probieren und passe, nachdem alles wie erwartet läuft, den Code schrittweise an Dein Problem an.
Konkreter kann ich Dir leider nicht weiter helfen.

Gruß, Jan
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.