Verfasst am: 31.08.2009, 17:22
Titel: Histogramm eines cell-arrays
Hi,
ich habe ein vielleicht einfaches Problem, weiß gerade allerdings nicht weiter. Ich hätte gerne ein Histogramm der Werte eines Cell-Arrays. Also ich haben einen Cell-Array mit unterschiedlich langen Vektoren in jedem Eintrag, welche als Werte Zeiten enthalten. Diese Zeiten möchte ich nun gemäß ihrer Häufigkeit in einem Histogramm plotten. Also auf der x-Achse sollen sich die Zeiten befinden und die Anzahl der jeweils vorkommenden Zeit auf der y-Achse. Die Höhe eines Histogrammbalkens soll mir also zeigen wir oft eine Zeit vorgekommen ist. Hat jemand eine Idee, wie ich das hinbekommen könnte? Ich bin für jeden Tipp dankbar, da ich gerade erst anfange mit Matlab zu arbeiten.
Viele Grüße
Dankeschön. Das hat super funktioniert. Die Vektoren waren alle so unterschiedlich, dass ich es über deinen zweiten Vorschlag probiert habe und das hat wunderbar geklappt. Danke.
Vielleicht kannst du mir bei der Sache mit der Hist-Funktion noch ein bisschen weiterhelfen. Ich würde nämlich gerne eine Matrix erstellen, in der die erste Spalte mti die Zeiten wiedergibt und die zweite die Anzahl dieser. Also wie oft die Zeit im gesamten Array vorgekommen ist. Habe das über [n]=hist probiert, bekomme dann aber ja einen Vektor n, der so groß ist, wie ich die Intervallbreite gewählt habe. Muss ich das überhaupt darüber machen oder ginge es auch anders? Denn ich möchte das die erste Spalte der Matrix wirklich nur die Zeiten enthält, welche auch vorkommen und im Histogramm auf der x-Achse auftauchen. Oder kann ich da die Funktion find benutzen? Ich blicke bei den ganzen Funktionen nömlich nicht mehr durch, welche hier am sinnvollsten und einfachsten wäre.
lg und nochmal Danke
der Befehl hist kann neben der Anzahl der Werte auch die jeweiligen Zentren der Bins zurückgeben. Ebenso kannst Du die Bin-Zentren vorgeben.
Danach kannst Du aus den Vektoren noch alle Elemente entfernen, die 0 mal vorkommen.
Beispiel:
Code:
r = [10;8;1;4;8;8;3;3;7;5;7;3];
[n,x] = hist(r,1:10);
M = [n(n>0)',x(n>0)'];
Super, danke. Jetzt habe ich es genau so, wie ich es haben wollte. Vielen Dank.
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.