只要我理解accumarray,它的意思是“制作输出的第n行:1)在sub中找到n。2)如果n在sub中的m1,m2,m3第3个元素中,3)将函数应用于m1,m2 , val 4) 的第 m3 个元素,即输出的第 n 行"
我在某个地方错了吗?
我运行了以下代码。
A = [2 10 13 ; 1 11 14; 1 12 10]
[U,ix,iu]= unique(A(:,1))
vals = reshape(A(:, 2:end).', [], 1)
subs = reshape(iu(:, ones(size(A, 2)-1,1)).', [], 1)
r2 = accumarray(subs, vals', [], @(x){x'})
r2{1}
r2{2}
一个=
2 10 13
1 11 14
1 12 10
U =
1
2
九 =
3
1
iu =
2
1
1
值 =
10
13
11
14
12
10
潜艇=
2
2
1
1
1
1
r2 =
[1x4 double]
[1x2 double]
答案=
12 11 14 10
答案=
13 10
==========================
但我预计r{1} = 11 14 12 10
,和r{2} = 10 13
。
为什么 accumarray 突然改变了排序?
我怎样才能得到预期的结果?