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

Vektor nach mehrfachen Werten scannen

 

tristan
Forum-Century

Forum-Century


Beiträge: 106
Anmeldedatum: 14.03.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.07.2008, 16:30     Titel: Vektor nach mehrfachen Werten scannen
  Antworten mit Zitat      
Hallo,

Ich habe einen Zahlenvektor. In diesem können einige Zahlen mehrfach auftreten. Diese Zahlen und ihre Häufigkeit möchte ich gern wissen.

Code:

result=[];
for i=1:length(data_mat)
    n=0;
    for j=1:length(data_mat)
        if(data_mat(i)==data_mat(j))
            n=n+1;  % Treffer
        end
    end
    if(n>1)
        result=vertcat(result,[data_mat(i) n]);
    end
end

[u1 u2 u3]=unique(result(:,1));

resneu=result(u2,:);    %idx der uniquen Dosiswerte
 


so habe ich das gemacht. Gibt ja bestimmt eine bessere Lsg.

Wie kann ich das optimaler machen?

Danke!
Private Nachricht senden Benutzer-Profile anzeigen


nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.318
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 09.07.2008, 16:59     Titel:
  Antworten mit Zitat      
Hi,

guck mal, ob Du hier mit weiterkommst.
_________________

Viele Grüße
nschlange

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

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 09.07.2008, 20:00     Titel:
  Antworten mit Zitat      
Ich glaube hist ist das, was du suchst:

Code:

werte           =  fix(rand(1,100)*10),
[anzahl, unique_werte] =  hist(werte,unique(werte))

resneu=[unique_werte', anzahl'];
 
Private Nachricht senden Benutzer-Profile anzeigen
 
nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.318
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 09.07.2008, 20:10     Titel:
  Antworten mit Zitat      
Da könnte denny recht haben.
Ich bin vorschnell davon ausgegangen, Du suchtest die Anzahl direkt aufeinanderfolgender Wiederholungen...
_________________

Viele Grüße
nschlange

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

Forum-Century

Forum-Century


Beiträge: 106
Anmeldedatum: 14.03.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.07.2008, 16:12     Titel:
  Antworten mit Zitat      
Danke für eure Antworten.

Aber ich suche die Werte die mehr als einmal vorkommen und dazu deren Anzahl.

Mit hist und unique bekomm ich ja die die nur einmal (also unique) vorkommen.

Gruß
Private Nachricht senden Benutzer-Profile anzeigen
 
nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.318
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 10.07.2008, 16:19     Titel:
  Antworten mit Zitat      
Gib mal einen Beispielvektor und das gewünschte Ergebnis.
_________________

Viele Grüße
nschlange

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

Forum-Century

Forum-Century


Beiträge: 106
Anmeldedatum: 14.03.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.07.2008, 16:25     Titel:
  Antworten mit Zitat      
Werte=[5 4 3 2 5 7 8 3 2 9 2]

Ergebnis:

[5 2
3 2
2 3]

Die linke Spalte ist hier die Zahl und die Rechte die Anzahl.
Private Nachricht senden Benutzer-Profile anzeigen
 
nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.318
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 10.07.2008, 16:29     Titel:
  Antworten mit Zitat      
Dann ist doch dennys Lösung im Wesentlichen perfekt.
Vielleicht noch
Code:
erg=[unique_werte'  anzahl']
ergänzen um auf Dein gewünschtes Format zu kommen.[/code]
_________________

Viele Grüße
nschlange

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

Forum-Century

Forum-Century


Beiträge: 106
Anmeldedatum: 14.03.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.07.2008, 16:53     Titel:
  Antworten mit Zitat      
In dem Beispiel funktioniert das. Aber bei meinem realen Vektor erhalte ich nur die Zahlen die einmal vorkommen. Das verstehe ich nicht.

Siehe Anhang..

werte.rar
 Beschreibung:

Download
 Dateiname:  werte.rar
 Dateigröße:  79.31 KB
 Heruntergeladen:  639 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.318
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 10.07.2008, 16:58     Titel:
  Antworten mit Zitat      
Also ich bekomme da auch doppelte, dreifache und sogar einen 11-fachen Wert.
Allerdings haben die ja fast alle 5 Nachkommastellen. Kannst Du die nicht einfach runden?


Edit:
Code:
clear all;
clc;
load werte;
[anzahl, unique_werte] =  hist(werte,unique(werte));
erg=[unique_werte'  anzahl'];
erg=erg((erg(:,2)>1),:);
sortrows(erg,2)

Werte die mehr als einmal vorkommen, aufsteigend sortiert nach der Häufigkeit.
_________________

Viele Grüße
nschlange

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

Forum-Century

Forum-Century


Beiträge: 106
Anmeldedatum: 14.03.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.07.2008, 17:19     Titel:
  Antworten mit Zitat      
ok der Fehler saß vor meinem Bildschirm.

Das funktioniert so sehr gut!

Vielen Dank für eure Hilfe!
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.