How can i create N copies of a vector based on nonzero values in that vector?
조회 수: 3 (최근 30일)
이전 댓글 표시
I have a vector 1x5 which contain NZ nonzero values, what can i do if i want to create N copies of that vector such that each copy contains only 1 nonzero value from NZ?
Original Vector [1 0 5 0 3]
Copy 1 [1 0 0 0 0] Copy 2 [0 0 5 0 0] Copy 3 [0 0 0 0 3]
댓글 수: 0
채택된 답변
Jan
2015년 11월 30일
v = [1 0 5 0 3];
Elem = unique(v(v~=0));
nElem = numel(Elem);
Result = cell(1, nElem);
for k = 1:nElem
Result{k} = v .* (v == Elem(k));
end
추가 답변 (1개)
William
2015년 11월 30일
not elegant but:
Original_Vector=[1 0 5 0 3];
Copy_1=Original_Vector;
Copy_1(3)=0;
Copy_1(5)=0;
etc..
참고 항목
카테고리
Help Center 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!