Ich habe 2 Vektoren, in denen Elemente eines ähnlichen Wert betrachtet aus der gleichen Gruppe zu sein, etwa wie folgt:Zähle die Anzahl der Mitgliedschaftsänderungen über mehrere Vektoren
V1 V2
1 7
1 8
1 8
1 8
1 9
2 10
3 11
3 11
3 11
3 12
4 12
4 12
In diesem Beispiel V1 hat 4 Gruppen, Gruppe 1 hat die ersten 5 Elemente, Gruppe 2 hat das nächste 1 Element, Gruppe 3 hat die nächsten 4 Elemente und Gruppe 4 hat die letzten 2 Elemente. V2 hat 5 Gruppen, Gruppe 1 das erste Element hat, Gruppe 2 die nächsten 3 Elemente usw.
Nun würde Ich mag die Anzahl der Zeitschalter ein Elementgruppe zählen, V1 als die Verwendung von Referenz. Betrachten wir Gruppe 1 in V1. Die ersten 5 Elemente sind in derselben Gruppe. In V2 ist das nicht mehr der Fall, weil V2(1,1)
und V2(5,1)
nicht den gleichen Wert wie die übrigen Elemente haben und somit eine veränderte/geänderte Mitgliedschaft haben. Nach dem gleichen Prinzip gibt es keinen Schalter für Gruppe 2 (d. H. V1(6,1)
und V2(6,1)
), einen Schalter für Gruppe 3 und keinen Schalter für Gruppe 4. Insgesamt sind 3 Schalter.
Zuerst dachte ich, das wäre eine einfache Rechnung mit Nein. der Schalter = numel(unique(V1)) - numel(unique(V2))
. Wie Sie jedoch sehen, unterschätzt dies die Anzahl der Switches. Hat jemand eine Lösung dafür?
I auch eine Lösung für ein einfacheres Problem erlaubt, in dem V1 nur eine Gruppe enthält, wie folgt aus:
V1 V2
2 7
2 8
2 8
2 8
2 8
2 8
2 8
2 9
2 8
2 10
2 10
2 8
In diesem zweiten Fall wird der Zählwert 4 Knoten ist, die schalten: V2 (1, 1), V2 (8,1), V2 (10,1), V2 (11,1).
Side Hinweis: Dies ist eigentlich ein Netzwerkproblem: V1 und V2 Partitionen sind und ich versuche, die Anzahl der Zeitschalter ein Knoten Mitgliedschaft zu zählen.
Wow verwenden können, können Sie es so einfach aussehen zu lassen! Danke, rahnema1! –
@ A.Rainer Froh, wenn es helfen kann! – rahnema1