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

 Akzeptierte Antwort

Wayne King
Wayne King am 10 Okt. 2013
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 Kommentare

connor
connor am 10 Okt. 2013
Thanks!
You can remove the find and use logical indexing
tf = a(1,:)==1
a(1,tf) = b

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Matrices and Arrays finden Sie in Hilfe-Center und File Exchange

Gefragt:

am 10 Okt. 2013

Kommentiert:

am 10 Okt. 2013

Community Treasure Hunt

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

Start Hunting!

Translated by