Verfasst am: 03.10.2019, 11:11
Titel: Mehrdimensionale Normalverteilung einer Matrix
Hallo zusammen,
ich möchte aus einer ziemlich großen Matrix, Dimension ca. 3000x5000 mit Werten von 1 bis 256, eine mehrdimensionale Normalverteilung plotten.
Dafür benutze ich bisher folgenden Code
Code:
% Multivariate Normalverteilung [sigma,mu] = robustcov(X);
x1 = 1:1:3000;
x2 = 1:1:5000;
[X1,X2] = meshgrid(x1,x2);
X = [X1(:) X2(:)];
y = mvnpdf(X,mu,sigma);
y = reshape(y,length(x2),length(x1));
Das Problem ist jetzt, dass ich als Plot nur eine "schwarze Platte" ohne Topographie bekomme. Ich schätze mal, dass die Achsen zu lang sind. Das Ergebnis habe ich nämlich auch, wenn ich die Achsen vom Beispiel aus der Matlabhilfe erweitere.
Hat jemand eine Idee, wie ich die Matrix entsprechend plotten kann? Oder ist sie einfach zu groß?
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Elli
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 03.10.2019, 14:09
Titel:
Hi Harald,
vielen Dank für deine Antwort.
Jetzt ist der dargestellte Plot blau, aber leider immer noch komplett eben. Ich bin mir auch nicht sicher, ob
Wie soll die ursprüngliche Matrix denn interpretiert werden? Die Zeilen als 5000-dimensionale Beobachtungen?
Wenn die Werte zwischen 1 und 256 liegen, dann solltest du auch x1 und x2 entsprechend wählen.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Elli
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 03.10.2019, 14:51
Titel:
Hi,
also B soll die Matrix sein, deren Verteilung ich plotten will. Das hatte ich ganz am Anfang vergessen zu erwähnen. Die Matrix B gibt mir die Pixelwerte eines Bildes an, die ich nun als Normalverteilung darstellen möchte.
Die Matrix B gibt mir die Pixelwerte eines Bildes an, die ich nun als Normalverteilung darstellen möchte.
Was ist daran aber denn nun multivariat? Die Kanäle R, G und B?
Wenn du mu und sigma wie beschrieben berechnest, dürften Skalare herauskommen. Das passt eben nicht zum multivariaten Ansatz.
Wenn du Fehlermeldungen bekommst, bitte immer auch angeben, welche Fehlermeldung du bekommst.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Elli
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 03.10.2019, 17:23
Titel:
Hallo Harald,
du hast recht, die Skalare kann ich dann ja mit einer normpdf plotten.
Genau, ich dachte, dass ich R,G und B als Matrizen multivariat plotten muss. Der Fehler, der angezeigt wurde, war
Code:
Error in Multivariate (line42)
y = mvnpdf(X,mu,sigma);
Aber ich denke, dass normpdf dann doch die Lösung ist. Ganz am Anfang hatte ich es auch so probiert, aber bei den Skalaren einen Fehler gemacht und den Ansatz deshalb wieder verworfen...
Also vielen Dank für deine Hilfe!
Dir noch einen schönen Abend und hoffentlich ein langes Wochenende
Liebe Grüße
Elli
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
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.