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

cftool noninteractive

 

Turbopavel
Forum-Anfänger

Forum-Anfänger


Beiträge: 29
Anmeldedatum: 22.11.12
Wohnort: ---
Version: R2017a
     Beitrag Verfasst am: 30.01.2014, 16:45     Titel: cftool noninteractive
  Antworten mit Zitat      
Hallo!

Ich lade über das Command Window mehrere Dateienreihen aus x und y Werten in das cftool ein, was auch soweit funktioniert... Ich muss aber immer im Tool die einzelnen "Sheets" umbennen und per Hand abspeichern, was bei 50 Datenreihen ziemlich aufwendig ist... Gibt es da noch eine andere Lösung, so ungefähr wie mit Exceldateien, wo man beim Erstellen die Sheets benennen kann und anschließend abspeichert!?

Danke im Voraus!

Gruß Pavel
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.01.2014, 17:40     Titel:
  Antworten mit Zitat      
Hallo,

du kannst aus dem Curve Fitting Tool Code generieren (File --> Generate Code).

Die meines Erachtens angenehmere Alternative wäre die Nutzung von lsqcurvefit.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 29
Anmeldedatum: 22.11.12
Wohnort: ---
Version: R2017a
     Beitrag Verfasst am: 31.01.2014, 14:19     Titel:
  Antworten mit Zitat      
Das mit dem Code generieren geht schonmal in die richtige Richtung... Bloß schade das er mir jetzt alle Wertepaare als einzelne Plots ausgibt! Ich würde schon gern das cftool benutzen, da ich darin erst die richtige Funktion einstellen möchte... Mir ging es eher darum, die Daten und deren Namen als Sheet ins das cftool am Command Window zu laden, sodass ich beim benutzen des Tool nur noch die passende Funktion wählen muss und alles andere schon vorbereitet ist...

Gruß Pavel
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

Zitat:
die Daten und deren Namen als Sheet ins das cftool am Command Window zu laden

das übersteigt jedenfalls meine Vorstellung, insbesondere da es in MATLAB keine Sheets gibt.

Ich kann dir insgesamt nicht ganz folgen.
Du willst also nicht das Fitten automatisieren, sondern das Extrahieren der Daten? Dann kannst du dir doch ein Skript / eine Funktion schreiben, die das machen, und am Ende cftool mit den Daten aufrufen?

Für weitere Hilfe bitte genau, am besten anhand eines Beispiels, beschreiben, was du in welcher Reihenfolge machst und was du haben willst.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 29
Anmeldedatum: 22.11.12
Wohnort: ---
Version: R2017a
     Beitrag Verfasst am: 03.02.2014, 13:36     Titel:
  Antworten mit Zitat      
Also: Ich habe einen 10 x 5 Vektor, den ich über eine for-Schleife in das cftool einlesen lasse. Für jede der zehn Datenreihen a 5 Werte, öffnet das Programm einen neuen "Table of Fits" (das meinte ich mit Sheet). Jedoch sind diese Sheets alle unbenannt und diese wollte ich gerne schon im Skript irgendwie umbennen, damit ich das nicht mehr im cftool machen muss. Das wäre nämich ziemlich aufwendig, da ich das Ganze mit ca 50 Vektoren machen muss. Wenn ich mir jetzt den Code vom cftool generieren lasse, bekomme ich die Datensätze ja im plot ausgegeben, das möchte ich aber nicht, da ich mir im cftool die verschiednen Verläufe der einzelnen Funktionen anschauen möchte. Ich muss nämlich herausfinden, welche Funktion die jeweiligen Datenpunkte am Besten beschreibt... Also ob der Verlauf der Datenpunkte am ehersten z.B einer Liniearen Funktion oder einer Exponentialfunktion ähnelt...

Gruß Pavel
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 03.02.2014, 20:07     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Ich habe einen 10 x 5 Vektor

Das ist dann kein Vektor, sondern eine Matrix.

Zitat:
Jedoch sind diese Sheets alle unbenannt und diese wollte ich gerne schon im Skript irgendwie umbennen, damit ich das nicht mehr im cftool machen muss.

Diese Möglichkeit gibt es meines Wissens nicht. Es ist ja als interaktives Tool gedacht und nicht zur massenhaften Datenverarbeitung.

Zitat:
Ich muss nämlich herausfinden, welche Funktion die jeweiligen Datenpunkte am Besten beschreibt... Also ob der Verlauf der Datenpunkte am ehersten z.B einer Liniearen Funktion oder einer Exponentialfunktion ähnelt...

Gibt es da eine bestimmte Menge an Kandidatenfunktionen? Falls ja, dann könntest du automatisiert (z.B. mit nlinfit) für alle Vektoren alle Kandidatenfunktionen durchlaufen und jedes Mal die "annehmen", die den besten Fit (d.h. z.B. die niedrigste Residuennorm) erzeugt.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 29
Anmeldedatum: 22.11.12
Wohnort: ---
Version: R2017a
     Beitrag Verfasst am: 04.02.2014, 13:58     Titel:
  Antworten mit Zitat      
Das klingt gut! Im Prinzip kann ich mich ja auf eine Funktion beschränken und alle Datensätze darauf "testen", wie gut diese, in meinem Falle einer Exponentialfunktion ähneln. Ich habe das mit nlinfit schon ausprobiert und es funktioniert soweit, mir ist nur nicht ganz klar, was der Vektor "beta0" beschreibt? Werde aus der Matlab-Hilfe nicht wirklich schlau...

Gruß Pavel
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 04.02.2014, 19:38     Titel:
  Antworten mit Zitat      
Hallo,

beta0 ist ein Startvektor für die Schätzung der Parameter.
Da nlinfit eine lokale Optimierung macht, besteht bei schlechten Startvektoren je nach Modell mehr oder weniger die Gefahr, dass die Optimierung nicht konvergiert oder nicht das globale Minimum findet.

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 - 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.