Sie können unique
auf die Transponierung dieser "Szenario" -Matrix verwenden und die dritte Ausgabe des Funktionsaufrufs untersuchen. Die dritte Ausgabe weist jedem möglichen eindeutigen Vorkommen in der Matrix eine eindeutige ID zu. Sie sollten auch das Flag 'rows'
angeben, um jede Zeile als eine einzelne Instanz zu betrachten. Wenn Sie nicht 'rows'
angeben, wird jedes einzelne Element in Ihrer Matrix als eine einzelne Instanz betrachtet, bei der die gesamte Spalte (oder Zeile der transponierten Matrix) eine einzelne Instanz sein soll. Außerdem können wir leider nicht mit unique
entlang der Spalten operieren, weshalb Sie stattdessen die Matrix transponieren müssen.
Sie möchten auch die erste Ausgabe, um zu untersuchen, wie jede ID jedem eindeutigen Vorkommen zugeordnet ist. Stellen Sie sicher, dass Sie diese Ausgangsvariable am Ende transponieren, damit die Ausgänge Spalten zugeordnet werden. Sie können dann histc
oder histcounts
verwenden, um das Auftreten jedes "Szenarios" zu bestimmen und somit die Wahrscheinlichkeit unter Annahme einer gleichwertigen Situation zu finden.
Hier ist ein kurzes Beispiel. Angenommen, ich habe diese Matrix von Ereignissen in A
gespeichert:
>> A = [0 0 0; 1 1 1; 1 0 0; 0 0 1; 0 0 0; 0 0 1; 1 1 1].'
A =
0 1 1 0 0 0 1
0 1 0 0 0 0 1
0 1 0 1 0 1 1
Wir sehen, dass die Dimensionalität des Szenarios 3 ist, während es gibt 7 Veranstaltungen. Tun, was ich sagte mit unique
gibt:
>> [un, ~, id] = unique(A.', 'rows'); %'
>> un = un.' %'
un =
0 0 1 1
0 0 0 1
0 1 0 1
>> id
id =
1
4
3
2
1
2
4
Wir können sehen, dass die Spalte [0; 0; 0]
gehört ID 1, die Spalte [0; 0; 1]
Karten ID 2, die Spalte [1; 0; 0]
Karten ID 3 und schließlich [1; 1; 1]
Karten ID 4. un
speichert alle eindeutigen Spalten, während id
uns diese Zuordnung zur Verfügung stellt. Sie können überprüfen, ob Sie, wenn Sie die id
Variable konsultieren und die Abbildung, die wir oben gesehen haben, konsultieren, können Sie jede Spalte mit ihren entsprechenden IDs ersetzen.
Wir können dann die Wahrscheinlichkeiten von jedem Vorkommen bestimmen:
N = size(un,2); %// Get total number of unique scenarios
M = size(A,2); %// Get total number of scenarios
prob = histc(id, 1 : N)/M; %// Finding probabilities
Wir erhalten:
>> prob
prob =
0.2857
0.2857
0.1429
0.2857
Dies stimmt mit unseren Daten. Für die Spalten [0; 0; 0]
, [0; 0; 1]
und [1; 1; 1]
gibt es zwei Vorkommen für jede Spalte und die Wahrscheinlichkeiten sind 2/7 = 0.2857
. Die andere Spalte von [1; 0; 0]
hat nur ein Vorkommen, und so ist die Wahrscheinlichkeit 1/7 = 0.1429
.
[un, ~, id] = unique(A.', 'rows'); %'// Assigning each event a unique ID
un = un.'; %'// Transpose to ensure compatibility
N = size(un,2); %// Get total number of unique scenarios
M = size(A,2); %// Get total number of scenarios
prob = histc(id, 1 : N)/M; %// Finding probabilities
:
Für die vollständige Codeauflistung so können Sie ganz einfach kopieren und einfügen, Ihre Matrix unter der Annahme in A
gespeichert