1

おはよう/おはよう〜

私はこのような配列を持っています、

A= [12 0 0 0 0 3 0 0 0 66 0 0 0 0 20 0 0 2 0 31 0 0  42 0 32 0 38]

出力は次のようになります。

B= [ 1 0 0 0 0 2 0 0 0 3  0 0 0 0  4 0 0 5 0  6 0 0  7  0 8  0 9]

A のゼロ以外の要素を連番に置き換えるにはどうすればよいですか?

4

4 に答える 4

5

This will do it:

A(A ~= 0) = 1:nnz(A)
于 2013-04-16T16:56:07.667 に答える
0
B = cumsum(A ~= 0) .* (A ~= 0);
于 2013-04-16T17:32:06.693 に答える
0
A(ismember(A,A(A(:) ~=0))) = 1:numel(A(A(:) ~=0))
于 2013-04-16T17:00:24.073 に答える