mjg*_*ndo 3 indexing matlab vector octave
我正在寻找一种转换矢量的有效方法:
[1,1,1,2,3,3,3,4,4,4,5,1]
Run Code Online (Sandbox Code Playgroud)
进入矢量矢量,使得:
[[1,2,3,12],[4],[5,6,7],[8,9,10],[11]]
Run Code Online (Sandbox Code Playgroud)
一般来说:
newVector[i] = indexes of the initial vector that contained i
Run Code Online (Sandbox Code Playgroud)
最好是在Matlab/Octave中,但我很好奇是否有一种有效的方法来实现这一点.
我尝试在谷歌和堆栈上查找它,但我不知道该怎么称呼这个'操作'所以没有出现.
有一种简单的方法可以使用它 accumarray
A = [1,1,1,2,3,3,3,4,4,4,5,1]
accumarray(A',A',[],@(x){find(ismember(A,x))})
Run Code Online (Sandbox Code Playgroud)
但下次,请在您的问题中展示自己的尝试
或者(但仅限A于从1任何数字开始并且不跳过任何数字)
accumarray(A', (1:size(A,2))', [], @(x){sort(x)})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
37 次 |
| 最近记录: |