MATLAB Answers

0

How to replace values of certain rows in a matrix?

Asked by Salad Box on 18 Oct 2019
Latest activity Edited by dpb
on 18 Oct 2019
Hi,
I have a matrix "a"
a =
1 1
2 2
3 3
4 4
I would like to replace the 2nd and 3rd row in "a" with "b" = [0 0]. So I want to change "a" to
a =
1 1
0 0
0 0
4 4
Do I have to do it in a loop? Can I avoid the loop?

  0 Comments

Sign in to comment.

Tags

1 Answer

Answer by Adam
on 18 Oct 2019
Edited by Adam
on 18 Oct 2019

a( [2 3], : ) = repmat( b, 2, 1 )
A bit more generally:
indicesToReplace = [2 3];
a( [2 3], : ) = repmat( b, indicesToReplace, 1 );

  1 Comment

dpb
on 18 Oct 2019
For the OP's specific case of replacing with a constant, automagic expansion negates need for repmat.
a(indicesToReplace,:)=0;
Side note to OP--work through the example tutorials in the "Getting Started" documentation link to get a feel for basic MATLAB syntax and addressing modes including colon and friends...will be an investment in time paid back many times over.

Sign in to comment.