How to replace values of certain rows in a matrix?

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?

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

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.

Categories

Tags

Asked:

on 18 Oct 2019

Edited:

dpb
on 18 Oct 2019

Community Treasure Hunt

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

Start Hunting!