In Matlab I can find all non zero entries in a vector like this:
>> v = [0 1 0 0 1]
v =
0 1 0 0 1
>> indices = find(v)
i
you have to know what the shape v
is (i.e. how long v
is if it's a vector as in your example), but once you know that it's trivial:
n = 5;
v_reconstructed = zeros(1, n);
v_reconstructed(indices) = 1;
if you don't know how long v
is then you won't capture any 0
s after the last 1
in v
...
BTW if you are working with sparse matrices then you might want this actually:
v = sparse([0 1 0 0 1]);
v_reconstructed = full(v);