MATLAB Answers

How to replace values of certain rows in a matrix?

22 views (last 30 days)
Salad Box
Salad Box on 18 Oct 2019
Edited: 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.

Answers (1)

Adam
Adam on 18 Oct 2019
Edited: 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
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.

Tags