2013-04-16 2 views
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의 0이 아닌 원소를 연속적인 숫자로 대체하려면?

답변

5

이렇게 할 것이다 (비록 인접한 비 - 제로 값과 동일한 라벨을 부여한다) 화상 처리 툴박스

A(A ~= 0) = 1:nnz(A) 
+0

감사 많이! 이것은 내 코드에서 잘 작동합니다! =) – user2269065

0
A(ismember(A,A(A(:) ~=0))) = 1:numel(A(A(:) ~=0)) 
0
B = cumsum(A ~= 0) .* (A ~= 0); 
관련 문제