MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today**New to MATLAB?**

Asked by connor
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

*No products are associated with this question.*

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;

Jos (10584)
on 10 Oct 2013

You can remove the find and use logical indexing

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

## 0 Comments