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

Matrix mit 2 Spalten: Häufigkeit der Zeilen/Vektoren

 

flyingernst
Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 13.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.04.2010, 10:04     Titel: Matrix mit 2 Spalten: Häufigkeit der Zeilen/Vektoren
  Antworten mit Zitat      
Hi,

ich habe eine 2 Spalten-matrix (X,Y), es handelt sich um Zahlen. Ich würde gerne wissen wie oft der gleiche Vektor darin steht. Ich würde quasi das machen, was tabulate mit einer einzigen Spalte macht.

Welche Funktion gibt es da?!
Ich habe mir schon gedacht man könnte im Notfall die beiden Spalten in eine eintragen und dann mit tabulate sortieren/aufzählen, also so dass in der einen spalte dann eben "X+Y" steht

Danke, Gruß Michael
Private Nachricht senden Benutzer-Profile anzeigen


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 23.04.2010, 13:31     Titel:
  Antworten mit Zitat      
Hallo

Erkläre bitte an einem Beispiel, was du erreichen möchtest

Code:

M = [...
 10,2;...
 11,3;...
 10,2;...
 10,2;...
 10,2;...
 11,3;...
 12,0]
 


Im Matrix kommt 10 und 2 => 4 Mal
11 und 3 => 2 Mal
12 und 0 => 1 Mal

Soll Histogramm über Linke und Rechte Spalte doch erstellt werden?
Verstehe ich das richtig?

Code:

M = [...
 10,2;...
 11,3;...
 10,2;...
 10,2;...
 10,2;...
 11,3;...
 12,0]

figure();
a = M(:,1).*10.^floor(log10(M(:,2)+double(M(:,2)==0))+1)+M(:,2);
b = unique(a);
hist(a,b)
 
Private Nachricht senden Benutzer-Profile anzeigen
 
flyingernst
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 13.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.04.2010, 12:51     Titel:
  Antworten mit Zitat      
ich werds später testen und rückmelden + erklären,

danke, Gruß Michael
Private Nachricht senden Benutzer-Profile anzeigen
 
flyingernst
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 13.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.04.2010, 16:04     Titel:
  Antworten mit Zitat      
Code:
M = [ -10,-2; 11,3; -10,-2; 10,2; 10,2; 11,3; 12,0] %bei mir sehr viel mehr werte von von negativ nach positiv
maxzeilen=size(M,1);
kraft_x=(min(M(:,1)):1:max(M(:,1)));%bezugsvektor für graph
matrixspalten=length(kraft_x);
kraft_z=(min(M(:,2)):1:max(M(:,2)));%bezugsvektor für graph
matrixzeilen=length(kraft_z);
matrix=zeros(matrixzeilen,matrixspalten);
DeltaZeilenZuNull=sqrt((min(M(:,2)))^2); %betrag zur Korrektur der Position in der Matrix
DeltaSpaltenZuNull=sqrt((min(M(:,1)))^2); %betrag zur Korrektur der Position in der Matrix

for zaehler=1:maxzeilen
    PosZeileInMatrix=(M(zaehler,2)+DeltaZeilenZuNull+1);
    PosSpaltInMatrix=(M(zaehler,1)+DeltaSpaltenZuNull+1);
    matrix(PosZeileInMatrix,PosSpaltInMatrix)=matrix(PosZeileInMatrix,PosSpaltInMatrix)+1;
end

 


jetzt fehlt mir noch die passende darstellung des ergebnisses

waterfall(kraft_z,kraft_x, matrix) gefällt mir noch nicht (mit diesen werten hier sowieso nicht). Ich muss irgendwie noch schaffen dass aus den vektoren größere Blöcke zusammen gefasst werden und dann deren Häufigkeit als Balken mit quadratischer Grundfläche über der Position des Vektors zu sehen ist
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 26.04.2010, 16:55     Titel:
  Antworten mit Zitat      
Hallo,

probier mal
Code:


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

Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 13.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.04.2010, 08:57     Titel:
  Antworten mit Zitat      
Hi,

das sieht super aus danke, jetzt muss ich es nur noch hinbekommen das richtig zu nutzen und die daten in der matrix richtig einzufügen, denn bei meiner jetzigen matrix, wo nur die Häufigkeiten drin stehen (also so wie man es bei waterfall braucht, X und Y des Graphen sind in jeweils einem eigenem Spalten Vektor) ists nicht ganz so prall da die achsbeschriftung/skalierung überhaupt nicht stimmt

edit:
anhand der doc habe ich gesehen dass die matrix gar nicht so falsch ist, ich muss nur die richtige Beschriftung/Skalierung der Achsen hinbekommen
Private Nachricht senden Benutzer-Profile anzeigen
 
timmwerner
Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 13.03.12
Wohnort: ---
Version: 2011a/2010a
     Beitrag Verfasst am: 30.11.2012, 23:22     Titel:
  Antworten mit Zitat      
hi, aber wie hat du nun die häufigekeiten der kombinationen herausgefunden? hab gerade das selbe problem...
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.