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

anzahl gleicher werte im vektor zählen.

 

matlabsemipro
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 09.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.05.2012, 10:18     Titel: anzahl gleicher werte im vektor zählen.
  Antworten mit Zitat      
Hallo,
ich habe einen vektor mit 147 einträgen: nun möchte ich zählen, wie oft jeder wert in dem vektor vorkommt und dies dann in einem histogramm darstellen.

z-b a=[ 1 1 2 2 3 3 4 4 4]

müsste 2mal die eins, 2mal die zwei, 2mal die 3 und 3mal die vier zählen,
ich bitte um hilfe;)
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 09.05.2012, 10:46     Titel:
  Antworten mit Zitat      
Hallo,

das gabs an sich schon.

Code:


Wenn du die Daten auch brauchst, hol sie dir als Rückgabeargument von HIST zurück und plotte mit BAR.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 09.05.2012, 10:48     Titel: Re: anzahl gleicher werte im vektor zählen.
  Antworten mit Zitat      
Hallo matlabsemipro,

Siehe "help accumarray". Da ich Matlab lange vor den Zeiten von accumarray gelernt habe (damals gab es noch keine Arrays mit mehr als 2 Dimensionen und keine Cells...), würde ich es lieber per HISTC lösen:
Code:
list = unique(a);
[n, index] = histc(a, list);

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
matlabsemipro
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 09.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.05.2012, 13:25     Titel:
  Antworten mit Zitat      
schonmal danke!

für das einfache problem funktioniert das auch. Jetzt habe ich aber 147 Einträge, die auch gleichkommazahlen enthalten. das histogramm wird dann auf der y-achse immer auf eins begrenzt und auf der x-achse seh ich sternchen, die mir die werte angeben?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 09.05.2012, 13:33     Titel:
  Antworten mit Zitat      
Hallo,

das Ergebnis legt den Schluss nahe, dass du 147 verschiedene Werte in dem Vektor hast. Die Antwort passt nach wie vor darauf, wie ich deine Frage verstanden habe. Daher:
Wie sollen die 147 Werte denn den Säulen im Histogramm zugeordnet werden? Wenn du das MATLAB überlassen willst, kannst du
Code:
verwenden. Ansonsten siehe Doku von hist für weitere Optionen.

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

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 09.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.05.2012, 13:39     Titel:
  Antworten mit Zitat      
ich möchte auf die x-achse den wert und auf die y-achse(also die höhe der balken) soll die anzahl, wie oft der wert in dem vektor vorkommt.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 09.05.2012, 13:42     Titel:
  Antworten mit Zitat      
Ja, und wenn jeder Wert genau einmal vorkommt, dann hast du das Resultat, das dir aber nicht gefällt.
Private Nachricht senden Benutzer-Profile anzeigen
 
matlabsemipro
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 09.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.05.2012, 13:47     Titel:
  Antworten mit Zitat      
das ist mein vektor:Columns 1 through 8

0 2.7275 2.7275 2.7275 2.7275 2.7275 2.7275 2.7275

Columns 9 through 16

2.7275 2.7275 2.7275 2.7275 2.7275 4.7452 4.7452 4.7452

Columns 17 through 24

4.7452 4.7452 4.7452 4.7452 4.7452 4.7452 4.7452 4.7452

Columns 25 through 32

4.7452 4.7452 4.7452 4.7452 4.7452 4.7452 4.7452 4.7452

Columns 33 through 40

4.7452 4.7452 4.7452 4.7452 4.7452 4.7452 4.7452 4.7452

Columns 41 through 48

4.7452 4.7452 4.7452 5.4760 5.4760 5.4760 5.4760 5.4760

Columns 49 through 56

5.4760 5.4760 5.4760 5.4760 5.4760 5.4760 5.4760 6.7137

Columns 57 through 64

6.7137 6.7137 6.7137 6.7137 6.7137 6.7137 6.7137 6.7137

Columns 65 through 72

6.7137 6.7137 6.7137 6.7137 6.7137 6.7137 6.7137 6.7137

Columns 73 through 80

6.7137 6.7137 6.7137 7.2235 7.2235 7.2235 7.2235 7.2235

Columns 81 through 88

7.2235 7.2235 7.2235 7.2235 7.2235 7.2235 7.2235 7.2235

Columns 89 through 96

7.2235 7.2235 7.2235 7.2235 7.2235 7.2235 7.2235 7.2235

Columns 97 through 104

7.2235 7.2235 7.2235 7.2235 7.2235 7.2235 7.2235 7.2235

Columns 105 through 112

7.2235 7.2235 7.2235 7.2235 7.2235 7.2235 7.2235 7.2235

Columns 113 through 120

7.2235 7.2235 7.2235 7.2235 7.2235 7.2235 7.2235 7.2235

Columns 121 through 128

7.2235 7.2235 7.2235 7.2235 7.2235 7.2235 7.2235 7.2235

Columns 129 through 136

7.2235 7.2235 7.2235 7.2235 7.2235 7.2235 7.2235 8.1645

Columns 137 through 144

8.1645 8.1645 8.1645 8.1645 8.1645 8.1645 8.1645 8.1645

Columns 145 through 147

8.1645 8.1645 8.1645

aber mein histogramm hat nur sechs balken, obwoh ich sieben verschiedene werte habe?
Private Nachricht senden Benutzer-Profile anzeigen
 
matlabsemipro
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 09.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.05.2012, 13:47     Titel:
  Antworten mit Zitat      
das liegt doch wahrscheinlich an der Null die ich nicht sehe
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 09.05.2012, 14:13     Titel:
  Antworten mit Zitat      
Hallo,

ist das nun eine Frage oder eine Feststellung?
Natürlich ist die 0 auch ein Wert, und sie kommt einmal vor.

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

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 09.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.05.2012, 14:20     Titel:
  Antworten mit Zitat      
hallo harald,

ich habe noch zwei weitere frage. wie legt matlab die breite der balken fest und wie könnte ich sie ändern? Und kann ich mir auch die anzahl der werte wie oft sie vorkommen ausgeben lassen?

gruß
david
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 09.05.2012, 14:25     Titel:
  Antworten mit Zitat      
Hallo,

das geht an sich auf meinen ersten Beitrag zurück.
Ergebnisse holen und Plotten mit veränderter Balkenbreite:

Code:
[n, x] = hist(a, unique(a));
b = bar(x,n, 'barwidth', 0.6);


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Dösbattel

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.08.2012, 18:26     Titel: was bitte ist ein Rückgabeargument???
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:
Hallo,

das gabs an sich schon.

Code:


Wenn du die Daten auch brauchst, hol sie dir als Rückgabeargument von HIST zurück und plotte mit BAR.

Grüße,
Harald


Hallo,
bin eine absolute Vollniete in Sachen Matlab und würde die in dem Beitrag beschriebene Lösung gerne übernehmen, kann aber mit dem Begriff"Rückgabeargument" nix anfangen....bitte bitte HILFE!!
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.08.2012, 11:14     Titel:
  Antworten mit Zitat      
Hallo,

das wird in dem Beitrag drüber beschrieben.

Bitte auch sagen, was du überhaupt machen möchtest.

Rückgabeargument ist etwas der Art
Code:
a = ... % ein Rückgabeargument
[a, b] = ... % zwei Rückgabeargumente


Grüße,
Harald
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.