Ich habe eine Matrix (A) in Form von (viel größer in der Realität):Auszählung Co-Inzidenz von Zahlen in den Spalten einer Matrix - MATLAB
205 204 201
202 208 202
Wie kann ich die Koinzidenz von Tally Zahlen auf einer spaltenweisen Basis und geben Sie diese dann an eine Matrix aus?
Ich möchte die endgültige Matrix von min (A): max (A) laufen lassen (oder in der Lage sein, einen bestimmten Bereich zu spezifizieren) über die Oberseite und die Seite und damit Co-Inzidenzen von Zahlen zu zählen in jeder Spalte. Im obigen Beispiel:
200 201 202 203 204 205 206 207 208
200 0 0 0 0 0 0 0 0 0
201 0 0 1 0 0 0 0 0 0
202 0 0 0 0 0 1 0 0 0
203 0 0 0 0 0 0 0 0 0
204 0 0 0 0 0 0 0 0 1
205 0 0 0 0 0 0 0 0 0
206 0 0 0 0 0 0 0 0 0
207 0 0 0 0 0 0 0 0 0
208 0 0 0 0 0 0 0 0 0
(Matrix-Etiketten sind nicht erforderlich)
Zwei wichtige Punkte: Die Auszählung nicht-Vervielfältigen sein muss und in numerischer Reihenfolge auftreten. Zum Beispiel einer Spalte mit:
205
202
Wird Tally dies als 202 mit 205 auftritt, aber nicht 205 mit 202 (wie in der obigen Matrix dargestellt) - das Duplikat auf Gegenseitigkeit. Wenn Sie entscheiden, welche Nummer als Referenz verwendet werden soll, sollte sie die kleinste sein.
EDIT:
Ich denke, die Fragesteller Zahlen größer als 1 im Ergebnis will, wenn die gleiche Spalte (bis zu sortieren) für die Köpfe dort mehr als einmal –
@LuisMendo Dank erscheint, herausgegeben! +1 für dich! – Divakar
Gute Lösung! +1 auch jetzt –