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

Berechnung für 3D Histogramm

 

mick

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.11.2008, 15:06     Titel: Berechnung für 3D Histogramm
  Antworten mit Zitat      
Hallo Zusammen!

Ich möchte mit dem Befehl surf ein 3D-Diagramm erstellen, in dem auf der X- und der Y- Achse die Datenwerte dargestellt sind. Auf der Z-Achse soll die relative Häufigkeit der Datenwerte dargestellt werden, die ich bereits mit dem Befehl histc ermittelt habe.

Mein Problem besteht darin, die Matrix Z richtig zu berechnen, in der die realtiven Häufigkeiten eingetragen sind.

Bisher habe ich folgendes programmiert, ich erhalte aber nicht das gewünschte Ergebnis:

Code:


% Datensätze X,Y
X = randn(1,1000);
Y = randn(1,1000);

% Vektor mit linspace
X_edges = linspace(min(X),max(X),10);
Y_edges = linspace(min(Y),max(Y),10);

% Histc: _n gibt relative Häufigkeit,
%          _bin gibt Klassen an
[X_n, X_bin] = histc(X,X_edges);
[Y_n, Y_bin] = histc(Y,Y_edges);

% Vordefinition Z
Z = zeros(10,10);

% Schreibe Inhalte von X_n, Y_n aller Klassen in Z
for m = 1:10;
    for n = 1:10;
        Z(m,n) = X_n(m) + Y_n(n);
       
    end
end

% Plot
surfc(X_edges,Y_edges,Z)
xlabel('data X');
ylabel('data Y');
zlabel('Häufigkeit');
Colormap jet
 


Probleme hab ich in dieser Zeile, die vermutlich auch nicht stimmt:
Code:

Z(m,n) = X_n(m) + Y_n(n);
 

Hat jemand eine Idee wie man das lösen kann?


dib0r
Forum-Guru

Forum-Guru


Beiträge: 413
Anmeldedatum: 09.05.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.11.2008, 13:00     Titel:
  Antworten mit Zitat      
Hallo,

warum nimmst du nicht den Befehl hist anstelle von histc?
Code:
X = randn(1,1000);
Y = randn(1,1000);

N = 10;
xx = linspace(min(X),max(X),N);
yy = linspace(min(Y),max(Y),N);

hx = hist(X,xx);
hy = hist(Y,yy);

% ausm anderen Thread geklaut Smile
[A B] = meshgrid(hx,hy);
Z = A+B;
% Z = repmat(hx,N,1) + repmat(hy',1,N);

surfc(xx,yy,Z)
[...]
 

Willst du sowas haben? Alternativ könntest du eigentlich schon eine Matrix in die Funktion hist geben, d.h. dann aber von deiner Aufgabenstellung ab.

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