|
|
Auslesen, zählen als schleife, Darstellung Balkendiagramm |
|
Helios0815 |
Forum-Newbie
|
|
Beiträge: 2
|
|
|
|
Anmeldedatum: 21.06.22
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 21.06.2022, 09:32
Titel: Auslesen, zählen als schleife, Darstellung Balkendiagramm
|
|
|
|
|
Guten Tag,
ich bin neu hier und fange nun an mich mal mit Matlab auseinander zu setzen. Die hilfen hier im Forum sind sehr gut gibt aber leider immer wieder leichte abwandlungen da es wirklich spezifische Probleme sind. Dh meine Frage die wahrscheinlich schon öfter gestellt wurde ich aber nichts genaues dazu gefunden habe.
Ich habe eine Matrix NxM mit ganzzahligen werten von 1 - 45. Ich benötige nun Hilfe dabei die Anzahl der jeweiligen werte zu erhalten.
Bsp.
Zahl 1 kommt 5x vor.
usw.
das ganze dann in einem Vektor 1x45 als Ergebnis. Der Mega umständliche Weg geht
H1 = sum(HG==1);
H1 = sum(H1)
H2 = sum(HG==2);
H2 = sum(H2)
H3 = sum(HG==3);
H3 = sum(H3)
H4 = sum(HG==4);
.
.
das ganze wäre aber natürlich schöner in einer for-Schleife.
HG ist dabei meine NxM Matrix. In meinem Umständlichen Beispiel oben zähle ich erst die Werte und addiere dann die werte um eine Gesamtanzahl zu erhalten. Da sich die werte im ersten Moment nur spaltenweise addieren lassen. Das knallt natürlich meinen Speicher unnötig voll.
Wie gesagt wäre schön wenn ihr mir eine schönere Methode zeigen könntet.
Als nächsten Schritt möchte ich gerne das mir dann die Werte 1-45 als Spaltendiagramm dargestellt werden.
x-Achse soll die Zahl 1-45 sein
y-Achse die Anzahl der Vorkommnisse.
Gruß Helios
|
|
|
|
|
steve |
Ehrenmitglied
|
|
Beiträge: 2.029
|
|
|
|
Anmeldedatum: 03.09.07
|
|
|
|
Wohnort: Wien
|
|
|
|
Version: R2024a
|
|
|
|
|
|
Verfasst am: 21.06.2022, 11:02
Titel:
|
|
Hallo Helios0518,
Willkommen im Forum!
Deine Beschreibung klingt als wärst du auf der Suche nach einer Lösung für die Erstellung eines Histogramms. Matlab hat dafür bereits die passenden Funktionen implementiert und du kannst dir sowohl die Werte ausgeben lassen (also wie oft kommt welche Zahl vor) als auch gleich das Histogramm erstellen lassen.
Solltest du mit diesen Informationen keine Lösung finden, bitte nochmal melden. Aber ich bin mir sicher du findest sowohl hier im Forum als auch in der Matlab Dokumentation die Lösung!
Viele Grüße!
Steve
_________________
>> I told me to.
____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
|
|
|
Helios0815 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 2
|
|
|
|
Anmeldedatum: 21.06.22
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 21.06.2022, 11:23
Titel:
|
|
|
|
|
Vielen Dank für die schnelle Antwort.
Du hast recht das ich auf der Suche nach einem Histogramm bin. Da ich aber für weitere Rechnungen diese Werte als eigene Matrix benötige reicht die reine Histogramm darstellen nicht aus.
Als weitere Verarbeitung möchte ich noch eine Sortierung und für weitere Auswertungen die 3 niedrigsten und 3 höchsten werte haben. Daher wäre denke ich eine.
Die Anzahl werte sollen demnach auch mit den Zahlen werten als Nx2 matrix ausgegeben werten. Bedeutet:
Anzahl x Wert
13 x 1
15 x 2
11 x 3
usw.
Aber danke für den Hinweis mit dem Histogramm. Für die aller erste Auswertung ist das sehr gut.
Gedanklich weis ich was Matlab mir ausgeben soll. Nur ich hätte gerne einen hübscheren Weg.
Daher
%Anzahl der jeweiligen Ganzzahligen werte der Matrix bestimmen
H1 = sum(HG==1);
H1 = sum(H1)
H2 = sum(HG==2);
H2 = sum(H2)
H3 = sum(HG==3);
H3 = sum(H3)
H4 = sum(HG==4);
H4 = sum(H4)
H5 = sum(HG==5);
H5 = sum(H5)
H6 = sum(HG==6);
H6 = sum(H6)
H7 = sum(HG==7);
H7 = sum(H7)
.
.
.
%Anzahl mit dem entsprechenden Wert zusammen führen in eine N x 2 Matrix
HG = [H1,1;H2,2;H3,3;H4,4;H5,5;H6,6;H7,7;...]
%Sortierung Nach Anzahl
shg = sortrows(HG,[1 2])
%Drei seltensten Wert
shglow = shg(1:3,1:2)
%Drei am meisten Vorkommenden Werte
shgmax = shg(47:50,1:2)
Vielleicht gibt es eben einen schöneren Weg
Gruß Helios
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 21.06.2022, 16:37
Titel:
|
|
Hallo,
histcounts liefert dir die numerischen Werte hinter dem Histogramm.
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 ;)
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| 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.
|
|