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)
indices =
2 5
Assuming that my vector v
can only have 0
and 1
values, what is a simple way to reproduce v
from the indices
vector?
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);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With