# Replace some values of a vector with another vector which has a different size

1 view (last 30 days)

Show older comments

Hello

I've got the vector: source = [ 0 0 1 0 1]

and the vector a = [2 3],

which has a different size to source.

I'd like to replace in the source vector the elements that are equal to 1, with those of vector a.

The final vector b should be: b = [0 0 2 0 3]

Any thoughts on this?

Thank you!

##### 0 Comments

### Accepted Answer

### More Answers (2)

pfb
on 29 Apr 2015

b=zeros(size(source));

b(find(source))=a;

of course this works only if the number of nonzero elements in source are the same as the elements in a.

Stephen23
on 29 Apr 2015

Edited: Stephen23
on 29 Apr 2015

>> A = [ 0 0 1 0 1];

>> B = [ 2 3];

>> A(A==1) = B

A = 0 0 2 0 3

On my computer this was almost twice as fast compared to using find and zeros.

##### 3 Comments

James Tursa
on 29 Apr 2015

### See Also

### Categories

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!