Replacing values within a row of matrix with a vector?

Basicly I have a matrix with only 0 and 1's.
a = [ 1 0 1 0;...
1 1 0 1;...
0 1 1 0;...
1 1 0 0];
And i want to replace the 1's in the first row with the vector
b = [2 5]
the number of 1's i want to replace will always be the same size as the vector b.
Is there any method for doing this??
Thanks

 Accepted Answer

There are a number of ways
a = [ 1 0 1 0;...
1 1 0 1;...
0 1 1 0;...
1 1 0 0];
b = [2 5];
idx = find(a(1,:) == 1);
a(1,idx) = b;

2 Comments

You can remove the find and use logical indexing
tf = a(1,:)==1
a(1,tf) = b

Sign in to comment.

More Answers (0)

Categories

Asked:

on 10 Oct 2013

Commented:

on 10 Oct 2013

Community Treasure Hunt

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

Start Hunting!