我有两个数组:
OTPCORorder = [61,62,62,62,62,62,62,62,62,62,62,62,65,65,...]
AprefCOR = [1,3,1,1,1,1,1,1,1,1,2,3,3,2,...]
对于 OTPCORorder 中的每个元素,AprefCOR 中都有一个相应的元素。我想知道每组唯一 OTPCORorder 中数字 1 的百分比,如下:
OTPCORorder1 = [61,62,65,...]
AprefCOR1 = [1,0.72,0,...]
我已经有这个了:
[OTPCORorder1,~,idx] = unique(OTPCORorder,'stable');
ANS = OTPCORorder1 = [61,62,65,...];
我曾经使用过"accumarray",但是现在我使用了像下面这样的"mean"或者"sum"函数:
AprefCOR1 = accumarray(idx,AprefCOR,[],@mean).';
我在想是否有一种方法可以使用 "prctile" 函数或任何其他函数,以便在这种情况下给我特定元素的百分比,例如 "1"。非常感谢你。
accumarray
方法来解决问题,所以应该接受你的答案,因为你做到了原帖作者的要求。我提供了一种替代方案,因为在这种情况下(至少在我看来),使用accumarray
会更慢。 - rayryeng