将矢量索引转换为其内容,反之亦然

时间:2016-05-12 07:03:25

标签: matlab vector indexing octave

我正在寻找一种转换矢量的有效方法:

[1,1,1,2,3,3,3,4,4,4,5,1]

进入矢量矢量,以便:

[[1,2,3,12],[4],[5,6,7],[8,9,10],[11]]

一般来说:

newVector[i] = indexes of the initial vector that contained i

最好是在Matlab / Octave中,但我很好奇是否有一种有效的方法来实现这一点。

我尝试在谷歌和堆栈上查找它,但我不知道该怎么称呼这个'操作'所以没有出现。

1 个答案:

答案 0 :(得分:5)

使用A = [1,1,1,2,3,3,3,4,4,4,5,1] accumarray(A',A',[],@(x){find(ismember(A,x))})

可以轻松完成此操作
A

但下次,请在您的问题中展示自己的尝试

或者(但仅当1accumarray(A', (1:size(A,2))', [], @(x){sort(x)}) 开始并且不跳过任何数字时)

<div>