How can i create N copies of a vector based on nonzero values in that vector?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Mohab Mostafa
am 30 Nov. 2015
Bearbeitet: Mohab Mostafa
am 30 Nov. 2015
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 Kommentare
Akzeptierte Antwort
Jan
am 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
1 Kommentar
Weitere Antworten (1)
William
am 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..
Siehe auch
Kategorien
Mehr zu Elementary Math finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!