How can i create N copies of a vector based on nonzero values in that vector?
1 view (last 30 days)
Show older comments
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 Comments
Accepted Answer
Jan
on 30 Nov 2015
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
More Answers (1)
William
on 30 Nov 2015
not elegant but:
Original_Vector=[1 0 5 0 3];
Copy_1=Original_Vector;
Copy_1(3)=0;
Copy_1(5)=0;
etc..
See Also
Categories
Find more on Elementary Math in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!