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

GUI Regressionsgerade ohne Curve Fitting App

 

Peter21
Forum-Anfänger

Forum-Anfänger


Beiträge: 28
Anmeldedatum: 10.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.09.2013, 13:20     Titel: GUI Regressionsgerade ohne Curve Fitting App
  Antworten mit Zitat      
Hallo zusammen,

ich möchte über ein GUI 2 Faktoren auswählen und neben einem Scatter eine Regressionsgerade einzeichnen.

[/code]scatter(vWerte_X_Achse,vWerte_Y_Achse);
hold on
[r,m,b] = regression(vWerte_X_Achse,vWerte_Y_Achse);
plotregression(vWerte_X_Achse,vWerte_Y_Achse);

Leider zeichnet Matlab die Regressionsgerade nicht in mein GUI, sondern öffnet ein seperates Figure. Weiss jemand mit welchem Befehl in die Regressionsgerade in das GUI übertragen kann?

Vielen Dank schonmal.
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

falls du tatsächlich den Befehl plotregression aus der Neural Networks Toolbox dafür verwendest: der Befehl ist nicht dafür ausgelegt, in einer GUI ausgeführt zu werden.

Ich sehe zwei Möglichkeiten:
- Falls es sich um eine "normale" lineare Regression handelt, kannst du sie selbst durchführen und den Plot einzeichnen.
- Alternativ kannst du mit set bzw. copyobj die Objekte aus der neuen Figure in deine GUI verschieben.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 28
Anmeldedatum: 10.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.09.2013, 15:05     Titel:
  Antworten mit Zitat      
Vielen Dank für den Hinweis.

Lasse mir die Regressionskoeffizienten über den Befehl polyfit geben. Weiss allerdings nicht wie ich eine auf der y-Achse startende Regressionsgerade einzeichnen kann.

Gruss Peter
Private Nachricht senden Benutzer-Profile anzeigen
 
Peter21
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 28
Anmeldedatum: 10.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.09.2013, 15:15     Titel:
  Antworten mit Zitat      
Deutlicher formuliert, ich habe meine Punkte über Scatter eingetragen und möchte jetzt durch diese Punkte die Regressionsgerade legen. Mit dem Plotbefehl sieht das allerdings sehr strange aus. Sprich die Regressionsgerade geht nicht durch die Punkte.

Code:
scatter(vWerte_X_Achse,vWerte_Y_Achse);
hold on
dRegressionskoeffizienten = polyfit(vWerte_X_Achse,vWerte_Y_Achse,1);
plot(dRegressionskoeffizienten);

Erkennst du meinen Fehler?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

bitte auch die Hilfe zu den Befehlen lesen.
Aus der Hilfe von polyfit geht hervor, dass polyfit die Koeffizienten des Polynoms zurückgibt und dass man diese dann mit polyval auswerten kann.
Code:


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

Forum-Anfänger

Forum-Anfänger


Beiträge: 28
Anmeldedatum: 10.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.09.2013, 16:29     Titel:
  Antworten mit Zitat      
Das habe ich leider schon getan, aber anscheinend hapert es an der Umsetzung.

[code]scatter(vWerte_X_Achse,vWerte_Y_Achse);
hold on
dRegressionskoeffizienten = polyfit(vWerte_X_Achse,vWerte_Y_Achse,1);
dAuswertungRegressionskoeffizienten=polyval(dRegressionskoeffizienten,vWerte_X_Achse);
plot(dAuswertungRegressionskoeffizienten);[code]

Er trägt mir auf der X-Achse die Anzahl der Werte ab (knapp 300), entsprechend geht die Skalierung von 1 bis 300. Da meine vorherige Punktwolke allerdings bei Werten (X- und Y-Achse) zwischen 0,2 und 0,8 war, ist die Grafik total verzerrt und ist keine Regressionsgerade???

Gruss Peter[/code]
Private Nachricht senden Benutzer-Profile anzeigen
 
Peter21
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 28
Anmeldedatum: 10.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.09.2013, 16:35     Titel:
  Antworten mit Zitat      
Wenn ich beim plot-Befehl

Code:
plot(dRegressionskoeffizienten,Y);


die Y-Werte hinzufügen, ist zwar das Problem mit der Skalierung gelöst, allerdings sind dann alle Punkte wild mit einander verbunden.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

du solltest beim Plot immer zugehörige x- und y-Werte angeben. Hier also:

Code:
plot(vWerte_X_Achse, dAuswertungRegressionskoeffizienten)


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

Forum-Anfänger

Forum-Anfänger


Beiträge: 28
Anmeldedatum: 10.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.09.2013, 17:23     Titel:
  Antworten mit Zitat      
Okay, Fehler erkannt.

Vielen Dank für deine Hilfe!

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