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

Häufigkeit der Werte in einem Cell-Array

 

Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.09.2008, 13:29     Titel: Häufigkeit der Werte in einem Cell-Array
  Antworten mit Zitat      
Hallo Matlab-Profis!

Ich bin ein Matlab Neuling und habe folgendes Problem.
Mein Cell-Array sieht z.B. so aus:

'123'
'123'
'456'
'789'
'789'
'789'
'L123'
'L456'
'123-345'

Durch den Befehl unique bekomme ich ja die Werte die im Array vorkommen. Jetzt möchte ich aber auch wissen wie oft ein Wert auftritt. Anschließend soll das Ergebnis nach der Häufigkeit sortiert werden.

Also z.B.:
3 '789'
2 '123'
1 '456'
usw.

Ich hoffe, dass ihr mir weiterhelfen könnt.

Gruß Jan


steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.029
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2024a
     Beitrag Verfasst am: 18.09.2008, 14:36     Titel:
  Antworten mit Zitat      
Moin,

an die Häufigkeiten kommst du folgendermaßen:
Code:

zelle = {'123'
'123'
'456'
'789'
'789'
'789'
'L123'
'L456'
'123-345'};
zelle_unique = unique(zelle);
pruefe=@(c)sum(strcmp(c,zelle));
counts = cellfun(pruefe,zelle_unique);
 

Der erste Wert in counts entspricht damit der Häufigkeit von dem ersten Wert in zelle_unique in dem Cell-Array zelle.

Gruß
Alex
_________________

>> 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?
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.09.2008, 15:25     Titel:
  Antworten mit Zitat      
Vielen Dank für die schnelle Antwort Alex, das funktioniert wunderbar!

Gruß Jan
 
nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.320
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 18.09.2008, 16:46     Titel:
  Antworten mit Zitat      
Hi,

das wäre mein Vorschlag gewesen:
Code:
[B,IX]=sort(c);
[u I]=unique(B);
rep=diff([~I(1);I]);
rep=flipud(sortrows([rep I],1))
B(rep(:,2))

_________________

Viele Grüße
nschlange

"Chuck Norris ejakuliert fluessigen Stahl!"
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
flyingernst

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.04.2010, 11:53     Titel: Ähnliches Problem
  Antworten mit Zitat      
Hallo Zusammen,

ich habe eigentlich das gleiche Problem. Ich habe in der Variablen ANGLE eine lange Spalte an WinkelWerten, welche aus 2 Vektoren (x,z) gebildet wurde
nun würde ich die Winkelwerte mal gerne raussortieren, das geht mit unique, klappt auch. Wenn ich jetzt nach obiger Beschreibung die Häufigkeit dazu eintragen lassen möchte kommt der Fehler

Error in ==> test_unique at 3
COUNTS = cellfun(PRUEFE,ANGLE_UNIQUE);

den Code, den ich benutze ist

ANGLE_UNIQUE = unique(ANGLE);
PRUEFE=@(c)sum(strcmp(c,ANGLE));
COUNTS = cellfun(PRUEFE,ANGLE_UNIQUE);

Der zweite Lösungsvorschlag sagt mir leider überhaupt nichts
 
Caidence
Forum-Anfänger

Forum-Anfänger


Beiträge: 35
Anmeldedatum: 01.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.04.2010, 12:29     Titel:
  Antworten mit Zitat      
Ich hatte mir mal Häufigkeiten (einer Spalte) mit tabulate ausgeben lassen. Vielleicht hilft dir das ja?
Private Nachricht senden Benutzer-Profile anzeigen
 
flyingernst

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.04.2010, 12:56     Titel: soll führen zu
  Antworten mit Zitat      
noch schnell zu was ich führen soll:

einmal will ich dann einen Plot machen
plot(ANGLE,COUNTS)

und später will ich noch neben der Häufigkeit nach weitere Verteilungen in die Matrix eingeben und das plotten.
Die Ausgabe über hist ist mir zu grob
 
flyingernst

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.04.2010, 13:01     Titel:
  Antworten mit Zitat      
K>> re = tabulate(ANGLE)
??? Undefined command/function 'tabulate'.

hmmm, ich habe 7.1 R14, kann das daran liegen?!
 
Caidence
Forum-Anfänger

Forum-Anfänger


Beiträge: 35
Anmeldedatum: 01.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.04.2010, 13:22     Titel:
  Antworten mit Zitat      
flyingernst hat Folgendes geschrieben:
K>> re = tabulate(ANGLE)
??? Undefined command/function 'tabulate'.

hmmm, ich habe 7.1 R14, kann das daran liegen?!


Vielleicht. Ich habe 7.5.
Private Nachricht senden Benutzer-Profile anzeigen
 
flyingernst

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.04.2010, 13:41     Titel:
  Antworten mit Zitat      
ich brauchs für meine bachelorarbeit, kannst du mir die tabulate.m vielleicht mailen?!
ich melde mich im forum mal fest an und schicke dir meine mailadresse, auf meine private mail komme ich hier nicht und die "geschäftliche" will ich hier nicht puplic machen
 
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.