2

A = [ 200000 x 1]ベクトルを考えてみましょう。私は別のベクトルを持っていidx = [200000x1]ます。AA のすべてithの要素がタイル化されるようにタイル化したいと思いidx(i)ます。

例えば:

A   idx output 
2   2    2
3   1    2
4   3    3 
5   1    4
.   .    4
.   .    4
.   .    5 
.    .     .

ループしないアイデアはありますか?

4

1 に答える 1

6

ランレングスのデコードを探しているようです。つまり、エンコードされた出力に長さが存在する必要があり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
于 2014-07-01T05:37:14.603 に答える