我有一个包含正实数int流的向量。
A = [1 2 1 1 3 2 ];
我想创建一个稀疏矩阵WW
(WxW,W是A中不同元素的数字),其中W(i,j)
包含元素i
的次数计数一个A跟随流中的A的元素j
。
WW =
(1,1) 1
(1,2) 1
(1,3) 0
(2,1) 1
(2,2) 0
(2,3) 1
(3,1) 1
(3,2) 0
(3,3) 0
答案 0 :(得分:1)
对于accumarray
来说,这看起来很完美:
result = accumarray([A(2:end).' A(1:end-1).'], 1, [], @sum, [], true);
或者您可以直接使用sparse
:
result = sparse(A(2:end), A(1:end-1), 1);
在您的示例中,上述任一项都给出了
result =
(1,1) 1
(2,1) 1
(3,1) 1
(1,2) 1
(2,3) 1