Ich habe eine 144x91x92-Matrix in o3{1}
gespeichert. Ich möchte über die dritte Dimension (die die Tage in einer Jahreszeit repräsentiert) blicken und sie sortieren. Dann möchte ich die oberen 10 und unteren 10 Prozent der Werte einschließlich des Index dieser Werte herausziehen. Dies würde die oberen 10 und unteren 10 Perzentile von Tagen für jede Gitterzelle finden (dies wäre für jede Gitterzelle unterschiedlich).Sortieren von 3D-Array entlang der 3. Dimension
Ich versuche, die folgenden:
[Y,I] = sort(o3{1},3); % sort o3 along 3rd dimension
o3_sorted = o3{1}(I);
ind_top10 = o3_sorted(90);
ind_bot10 = o3_sorted(10);
Aber ich weiß, ich bin nicht in die Top 10 und unten korrigieren 10. Perzentil ziehen. Außerdem sagt mir dieser Weg nicht die Indizes (unterschiedlich für jede der Rasterzellen 144x91) für das obere und untere 10 Perzentil der Tage. Ich hoffe, mit 144x91x10 Matrizen für die oberen 10 Perzentile der Tage, die unteren 10 Perzentile der Tage und die Indizes für jeden zu enden.
Warum '[Y, I] = sort (o3 {1}, 3);' und nicht '[Y, I] = sort (o3,3);'? Wenn 'o3' eigentlich ein Zellen-Array ist, dann sollten Sie Ihre Frage bearbeiten, um das widerzuspiegeln. – Dan
Ja, ich habe gerade das bearbeitet. o3 ist eine Zelle. o3 {1} ist die 144x91x92 Matrix – shizishan
Gibt es einen Unterschied zwischen 'Y' und' o3_sorted'? Außerdem weißt du, dass wenn du 92 Tage hast, es nur 9 Werte in den oberen und unteren 10 Perzentilen gibt ...? Ich denke, Sie wollen eher 'ind_bot10 = Y (:,:, 1: 9)' ... – Dan