MATLAB Answers

connor

Replacing values within a row of matrix with a vector?

Asked by connor
on 10 Oct 2013
Latest activity Commented on by Jos (10584)
on 10 Oct 2013

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

  0 Comments

Products

No products are associated with this question.

1 Answer

Answer by Wayne King
on 10 Oct 2013
 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

connor
on 10 Oct 2013

Thanks!

Jos (10584)
on 10 Oct 2013

You can remove the find and use logical indexing

tf = a(1,:)==1
a(1,tf) = b

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply today