考虑A = [ 200000 x 1]
向量。我有另一个向量idx = [200000x1]
。我想平铺A
使得ith
A 的每个元素都是平铺idx(i)
时间。
例如:
A idx output
2 2 2
3 1 2
4 3 3
5 1 4
. . 4
. . 4
. . 5
. . .
任何非循环的想法?
考虑A = [ 200000 x 1]
向量。我有另一个向量idx = [200000x1]
。我想平铺A
使得ith
A 的每个元素都是平铺idx(i)
时间。
例如:
A idx output
2 2 2
3 1 2
4 3 3
5 1 4
. . 4
. . 4
. . 5
. . .
任何非循环的想法?
似乎您正在寻找运行长度解码:这idx(ii)
表示长度 A(ii)
应该存在于编码输出中。
这是在 Matlab 中执行此操作的好方法:
output = zeros(1, sum(idx)); % allocate output
output( cumsum( [1 idx(1:end-1)] ) ) = 1;
output = A( cumsum( output ) );
output =
2 2 3 4 4 4 5