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

lsqcurvefit- selbst matlab-help-Beispiel funktioniert nicht

 

lee1989
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 09.12.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.12.2011, 23:57     Titel: lsqcurvefit- selbst matlab-help-Beispiel funktioniert nicht
  Antworten mit Zitat      
Hallo zusammen,

ich arbeite mich seit einigen Tagen in die Benutzung von matlab ein und bin nun auf ein Problem gestoßen bei dem google mir nicht weiterhelfen konnte...

Ich versuche 2 Parameter einer Logarithmusfunktion mit Hilfe dreier Messwerte über lsqcurvefit zu bestimmen und dachte ich hätte mich dabei genau an die Anleitung in der 'help' gehalten:

Code:

Parameter=[5 18.8 42];
Wert=[ 1.107 1.153 1.162];

   coeffi=lsqcurvefit(@(coeffi,Parameter) (coeffi(1)*log(Parameter)+coeffi(2)),[0.025 1.07],Parameter,Wert);
 


erhielt aber mehrere Fehlermeldungen :

Reference to non-existent field 'TolCon'.

Error in ==> createOptionFeedback at 50
if isempty(options.TolCon)

Error in ==> lsqncommon at 127
optionFeedback = createOptionFeedback(options);

Error in ==> lsqcurvefit at 258
[xCurrent,Resnorm,FVAL,EXITFLAG,OUTPUT,LAMBDA,JACOB] = ...)

Als ich dann einfach mal das Beispiel aus dem 'help lsqcurvefit' kopiert hab, um das auszuprobieren war ich doch sehr verwundert:
das Beispiel führt zu denselben Fehlermeldungen.

Nun ist meine Frage : a) warum?
b) was kann ich tun, damit eigentlich richtiger(?) matlab-code auch bei mir funktioniert?

Grüße und Dank!
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

bei mir funktioniert dein Code.

Die Frage ist nun, warum er bei dir nicht funktioniert. Dazu müsste man wissen, mit welcher MATLAB-Version du arbeitest.

Was du versuchen kannst: explizit die Default-Optionen übergeben:
Code:
options = optimset('lsqcurvefit');
   coeffi=lsqcurvefit(@(coeffi,Parameter) (coeffi(1)*log(Parameter)+coeffi(2)),[0.025 1.07],Parameter,Wert, [], [], options);


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

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 09.12.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.12.2011, 13:50     Titel:
  Antworten mit Zitat      
Hallo,

ich arbeite im Institut mit der R2010a-Version - da funktioniert weder mein Code noch das explizte übergeben der Default-fkt.

In der 2011a-Version funktionieren beide Codes dafür einwandfrei, was zwar super fürs arbeiten am Wochenende oder nachts ist (PC zu hause) aber das Problem fürs Arbeiten vor Ort nicht wirklich erleichtert...

Weißt du zufällig ob/wie sich die Funktion lsqcurvefit in den beiden Versionen unterscheidet?


Grüße,
lee
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 10.12.2011, 15:27     Titel:
  Antworten mit Zitat      
Hallo,

ich werde es Anfang der Woche mal selber mit 2010a probieren.
Mich erstaunt dieses Problem, und ich werde versuchen, es zu reproduzieren.

Ansonsten kannst du natürlich auch mal selber versuchen mit dem Debugger zu sehen, was mit der Optionsstruktur schiefgeht.

Eventuelle (gewollte) Unterschiede in der Funktionalität lassen sich in den Release Notes (ganz oben im Contents Tab der Dokumentation) nachlesen.

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

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 09.12.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.12.2011, 16:34     Titel:
  Antworten mit Zitat      
Danke für deine Hilfe soweit,

werde Montag selbst nochmal versuchen das Problem zu lösen,Release notes lesen und bis dahin einfach 1. das Wochenende genießen und 2. mit dem funktionierenden Code in 2011a weiterarbeiten.

Grüße,
lee
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 12.12.2011, 15:01     Titel:
  Antworten mit Zitat      
Hallo,

ich kann das Problem auch mit 2010a nicht reproduzieren.
Vorschlag: wechsle in ein leeres Verzeichnis und nimm setze den MATLAB-Suchpfad auf Default zurück. Lasse dort den Code laufen.

Oder zur Not eben debuggen um zu sehen, was da schiefgeht - auch wenn das in MATLAB-internen Funktionen an sich nicht notwendig sein sollte.

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.