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

meshgrid mit unstetigen vektor

 

sexyphil
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 58
Anmeldedatum: 19.08.14
Wohnort: Bayern
Version: 2013a
     Beitrag Verfasst am: 17.06.2015, 08:34     Titel: meshgrid mit unstetigen vektor
  Antworten mit Zitat      
Hallo,

ich plotte eine Verteilungsmatrix die folgendermaßen aussieht:

http://www.bilder-upload.eu/show.php?file=839acf-1434526868.png

Ich habe in die eine Richtung einen Vektor der 20:20:200 läuft und einen der so aussieht [-0.5 -0.3 -0.2 -0.15 -0.12 -0.11 -0.1 -0.09 -0.08 -0.07 -0.06 -0.05 -0.04 -0.03 -0.02 -0.015 -0.012 -0.011 -0.01 -0.009 -0.008 -0.007 -0.006 -0.005 -0.004 -0.003 -0.002 -0.001 -0.0000000001 0 1].

Wie man im plot erkennt sieht das nicht besonders schön aus. Gibt es eine Möglichkeit, dass schöner darzustellen?

Danke & Grüße
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: 17.06.2015, 08:41     Titel:
  Antworten mit Zitat      
Hallo,

Schönheit liegt bekanntlich im Auge des Betrachters.
Was genau stellst du dir denn vor?

Da im Bereich [0 1] ohnehin nichts spannendes zu passieren scheint, könnte man ihn z.B. einfach weglassen...

Testdaten wären hilfreich.

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

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 58
Anmeldedatum: 19.08.14
Wohnort: Bayern
Version: 2013a
     Beitrag Verfasst am: 17.06.2015, 09:00     Titel:
  Antworten mit Zitat      
Ich habe es mal unten angehängt,

du hast Recht in diesem Fall passiert zwischen 0 und 1 wenig bis nichts, es kann aber vorkommen, dass auch zwischen 0 und 1 Werte liegen. Ich würde das gerne allgemein halten, weil die Vektoren, die das Grid aufziehen variabel in einem GUI eingegeben werden können. Vielleicht gibt es die Möglichkeit, dass bei zwei stetigen Vektoren der unten genannte Code auszuführen ist und bei Vektoren die keine festen Schritte haben ein anderer surf Befehl ausgeführt wird, oder der Grid irgendwie verändert wird. Ich weiss nur nicht wie!


Code:
[Nmesh,Mmesh]=meshgrid(class_1_calc_hist,class_2_calc_hist);

surf(Nmesh,Mmesh,M,'FaceColor','interp','FaceLighting','phong')


Danke!

M_class.zip
 Beschreibung:
Anbei die zu plottende Matrix mit den beiden Vektoren die das Grid aufziehen sollen

Download
 Dateiname:  M_class.zip
 Dateigröße:  718 Bytes
 Heruntergeladen:  292 mal
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: 17.06.2015, 10:08     Titel:
  Antworten mit Zitat      
Hallo,

eine Möglichkeit:
Code:
surf(1:numel(class_1_calc_hist),1:numel(class_2_calc_hist),...
    M,'FaceColor','interp','FaceLighting','phong')
set(gca, 'XTick', 1:numel(class_1_calc_hist))
set(gca, 'YTick', 1:3:numel(class_2_calc_hist))

set(gca, 'XTickLabel', num2str(class_1_calc_hist'))
set(gca, 'YTickLabel', num2str(class_2_calc_hist(1:3:end)'))


Grüße,
Harald

P.S.: ich würde da nicht von (un)stetigen Vektoren reden, sondern von (un)gleichmäßig unterteilten. bzw. Vektoren mit (un)gleichmäßiger Schrittweite.
Private Nachricht senden Benutzer-Profile anzeigen
 
sexyphil
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 58
Anmeldedatum: 19.08.14
Wohnort: Bayern
Version: 2013a
     Beitrag Verfasst am: 17.06.2015, 11:10     Titel:
  Antworten mit Zitat      
Hallo Harald,

danke, dass sieht doch super aus. Vielen Dank für deine Hilfe!

Mir ist nur gerade aufgefallen, dass ein surf plot wenig Sinn macht, wenn man eine Matrix darstellen will, mit der Klassenobergrenzen wie in diesem Fall 20 angegeben werden. Alle Werte die kleiner als 20 sind tauchen in diesem Plot nicht auf. Habe mich jetzt für den bar3 plot entschieden, in diesem Fall sieht man alles recht schön und auch jede einzelne Zelle.
Mit meshgrid bekomme ich das irgendwie nicht hin, weil ich immer 'Data dimensions must agree.' als Fehlermeldung bekomme, weil die Matrix ja eine feste Größe hat und diese vom meshgrid auch aufgespannt werden muss, oder?
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: 17.06.2015, 12:22     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Mit meshgrid bekomme ich das irgendwie nicht hin, weil ich immer 'Data dimensions must agree.' als Fehlermeldung bekomme

Bitte den Code posten, der die Fehlermeldung erzeugt.

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

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 58
Anmeldedatum: 19.08.14
Wohnort: Bayern
Version: 2013a
     Beitrag Verfasst am: 17.06.2015, 14:16     Titel:
  Antworten mit Zitat      
Hallo,

also ich hab mal rot markiert was ich anspreche. Die Matrix ist 31x10 und das Grid ist auch 31x10. Allerdings schneidet er die Spalte, die bei 20 beginnt zur Hälfte ab. Ich hoffe du verstehst was ich meine.

Wenn ich jetzt

Code:
surf(1:numel(class_1_calc_hist)+10,1:numel(class_2_calc_hist)+0.2


eingebe, kommt die Fehlermeldung, weil das Grid ja jetzt durch +10 um eine Stelle länger geworden ist.

http://www.bilder-upload.eu/show.php?file=42897c-1434543704.png

http://www.bilder-upload.eu/show.php?file=24907e-1434547428.png

http://www.bilder-upload.eu/show.php?file=a5f971-1434547464.png

Danke!
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: 17.06.2015, 14:29     Titel:
  Antworten mit Zitat      
Hallo,

ich glaube, das ist eine Fehlinterpretation der Graphik. Die Werte für 20 sind meines Erachtens korrekt entlang der Gitterlinie für 20 aufgetragen. Der Bereich zwischen den Gitterlinien für 20 und 40 würde dann auch zu diesem Wertebereich gehören.

Vielleicht verstehe ich aber auch nur das Problem noch nicht.

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

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 58
Anmeldedatum: 19.08.14
Wohnort: Bayern
Version: 2013a
     Beitrag Verfasst am: 17.06.2015, 16:36     Titel:
  Antworten mit Zitat      
Mh... ne du hast schon Recht er zeigt die entlang der Linien an. Wäre halt schön, wenn er die Fläche nicht so abschneiden würde. Aber wie gesagt mit dem Bar Plot macht er das ja richtig. Danke für deine Hilfe!
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: 18.06.2015, 08:01     Titel:
  Antworten mit Zitat      
Hallo,

mir fehlt offen gesagt die Vorstellung, wie es anders aussehen sollte.

Natürlich könnte man noch einen Vektor mit Nullen z.B. für 10 einfügen, um die Fläche "runterzuziehen" - aber ist es denn das, was gewünscht ist?

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

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 58
Anmeldedatum: 19.08.14
Wohnort: Bayern
Version: 2013a
     Beitrag Verfasst am: 18.06.2015, 13:23     Titel:
  Antworten mit Zitat      
Und genau das würde ja das Ergebnis verfälschen. Stimmt schon so wie du das meinst. Ich hatte da einen Denkfehler.
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.