|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.08.2012, 13:12
Titel: Regression
|
 |
Hallo liebes Forum!
Ich bin noch ziemlich neu im Umgang mit Matlab und habe eine, wahrscheinlich ganz triviale frage:
ich habe zwei vektoren gegeneinaner geplottet:
x = 852, 780, 707, 713, 616, 485, 438, 462, 588, 352, 375, 163 ...
y = 0.8, 1.5, 0.1579, 0.30,0.29, 0.23, 0.24, 0.09, -0.03, -1.2, 0.66, 0.14 ...
und ich möchte jetzt keine regressionsgerade reinlegen, sondern eine kurve, die den verlauf folgt, ähnlich einer regressionsgraden. gibt es da in matlab auch eine möglichkeit das zu machen.
MFG
|
|
|
|
|
Nras |

Forum-Meister
|
 |
Beiträge: 608
|
 |
|
 |
Anmeldedatum: 21.02.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.12.0.635 (R2011a)
|
 |
|
|
 |
|
Verfasst am: 27.08.2012, 14:30
Titel:
|
 |
Scheint so, als suchtest du einen Glätter.
.
Viele Grüße.
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 27.08.2012, 17:08
Titel: Re: Regression
|
 |
Hallo,
Es gibt unendlich viele Kurven, die dem Verlauf der Punkte ähnlich sind. Möchtest Du Polynom, wenn ja, welchen Grades? Dann siehe "help polyfit". Sollen alle Punkte getroffen werden, oder soll eine möglichst glatte Kurve durch die "Mitte" der Punkte gelegt werden?
Gruß, Jan
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.08.2012, 18:02
Titel:
|
 |
danke für eure Antworten!
Es sollte eine möglichst glatte Kurve durch die Mitte der Punkte gelegt werden. So in der Art der Bias, jedoch bekomme ich mit der Formel keine schöne Kurve hin!
Irgendwie komm ich nicht weiter, vielleicht habt ihr noch ein paar Tipps für mich.
MFG
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.08.2012, 08:42
Titel:
|
 |
hallo!
hab jetzt mal die function polyfit ausprobiert. Leider funktioniert das nicht bei mir, weil ich in meinen variablen NaN-werte habe und ich deshalb bei
NaN-werte herausbekomme.
Die NaN-Werte bekomme ich, weil ich eine Divison durch Null habe, wenn ich jedoch die NaN-Werte als Null definiere, werde diese dann in der Graphik geplottet, was auch nicht sein sollte.
Definiere ich die NaN-Werte mit Null, bekomme ich Werte bei den beiden obrigen Funktionen, jedoch stimmt meine Graphik nicht. Lasse ich meine NaN-Werte, stimmt die Graphik, aber ich bekomme keine Kurve. Irgendwie dreh ich mich im Kreis und weiß leider nicht mehr weiter.
Ich bitte euch, noch um weitere Hilfe, da ich das Problem bis morgen gelöst haben sollte, und ich jetzt schon seit Mittwoch daranherum probiere!
thousand thx!!
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 28.08.2012, 12:07
Titel:
|
 |
Hallo,
Für die Interpolation müssen die NaN-Werte ausgeschlossen werden:
Nun könntest Du bei Bedarf "f(~index) = NaN" setzen. Aber ich vermute, dass das nicht notwendig ist.
Gruß, Jan
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.08.2012, 13:20
Titel:
|
 |
Hallo zusammen!
Danke, mit diesem Code funktioniert es schon mal, nur jetzt bekomme ich keine schöne glatte Kurve, wie in dem Beispiel in der Help-Funktion, sondern mehrere Kurven, die knapp übereinander liegen. Ein richtiges Strichgewirr.
Wie bekomm ich das in den Griff?
MFG
|
|
|
madlab |

Forum-Fortgeschrittener
|
 |
Beiträge: 86
|
 |
|
 |
Anmeldedatum: 15.05.12
|
 |
|
 |
Wohnort: Freiburg
|
 |
|
 |
Version: 7.11 (R2010b)
|
 |
|
|
 |
|
Verfasst am: 28.08.2012, 16:14
Titel:
|
 |
Hallo,
wie rufst du denn deine polyval funktion genau auf?
normalerweise müsstest du, beim aufruf von polyval(x,p) einen ergebnisvektor y zurück bekommen, der die länge von x hat.
wenn du den dann plottest hast du eignetlich nur eine kurve.
kannst du uns vllt. den ausschnitt deines code zeigen wo du die plots erzeugst?
grüße,
mad
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.08.2012, 18:10
Titel:
|
 |
hi,
mein code ist:
Die Schreibweise habe ich in der Matlab-Hilfsfunktion gefunden und übernommen.
Danke, MFG
|
|
|
madlab |

Forum-Fortgeschrittener
|
 |
Beiträge: 86
|
 |
|
 |
Anmeldedatum: 15.05.12
|
 |
|
 |
Wohnort: Freiburg
|
 |
|
 |
Version: 7.11 (R2010b)
|
 |
|
|
 |
|
Verfasst am: 29.08.2012, 11:08
Titel:
|
 |
Hi Gast,
ich vermute mal die unschöne Darstellung liegt daran, dass du deine x-Messerwerte nicht sortiert hast.
Ich hab mal folgendes ausporbiert:
ist zwar sicher nich die hübscheste Lösung (da umständlich lang) aber ich glaube es kann dir weiter helfen.
Grüße,
mad
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 29.08.2012, 11:36
Titel:
|
 |
Hallo madlab,
Dies nennt man "logical indexing" und es ist im Allgemeinen deutlich schneller.
Gruß, Jan
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 29.08.2012, 11:52
Titel:
|
 |
super, danke, hat funktioniert!!!!
|
|
|
madlab |

Forum-Fortgeschrittener
|
 |
Beiträge: 86
|
 |
|
 |
Anmeldedatum: 15.05.12
|
 |
|
 |
Wohnort: Freiburg
|
 |
|
 |
Version: 7.11 (R2010b)
|
 |
|
|
 |
|
Verfasst am: 29.08.2012, 12:24
Titel:
|
 |
hi jan,
ich kenn logical indexing, hab ich hier von euch aus dem Forum gelernt.
Ich habe mir den Code von unserem Gast nur nahezu 1 zu 1 kopiert und das sortieren davor gehängt ohne genauer zu schauen was besser wäre. ^^
Hast aber Recht, ist eine wesentlich schönere Lösung
Grüße,
mad
P.S. ich glaube meine Tastatur klemmt einfach, manchmal klappts
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 29.08.2012, 17:07
Titel:
|
 |
Hallo madlab,
Du kannst den Text ja in Matlab verfassen und per Logical Indexing und der UPPER Funktion die Großbuchstaben erzeugen. Dann per CLIPBOARD-Befehl in die Zwischenablage kopieren und im Forum pasten.
Ich habe immer gewusst, dass man mit Matlab auch echte Aufgaben lösen kann! :-)
Gruß, Jan
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|