Problem 796. Removing rows from a matrix is easy - but what about inserting rows?
Assume A is a 5-by-5 matrix. A([2,4],:) = [] is a quick way to remove rows 2 and 4. Can you find a quick way to insert rows into A?
You are given a n-by-m matrix A, a 1-by-p vector of indices IND, and either a scalar value (1-by-1) or a p-by-m matrix b to be inserted AFTER rows IND of A. In case of a scalar value it should fill the whole row. Note that IND may contain duplicate indices, which means that more than one row should be inserted after that specific row index.
For example:
A = [1 1; 3 3; 4 4]; IND = [1 3]; b = [2 2; 5 5];
should become
y = [1 1; 2 2; 3 3; 4 4; 5 5];
And
A = [0 0; 1 1]; IND = [1 1 2]; b = NaN;
should become
y = [0 0; NaN NaN; NaN NaN; 1 1; NaN NaN];
Solution Stats
Problem Comments
-
4 Comments
I corrected one error regarding isequal with NaNs, but all the other test cases are correct.
A = [1 3 5 7 9]; IND = [1 2 3 4 5]; b = [2 4 6 8 10]; definitely should result in [1 2 3 4 5 6 7 8 9 10]! You have to insert b(1) after A(1), b(2) after A(2) and so on.
Nice problem, but the specification could be improved: from the description, you'd think the entire matrix b is supposed to be inserted after each row in IND; it's only the first example that makes it clear that this is not the case.
A good problem. My first attempts at solutions used for loops and if statements, but as some of the correct submissions demonstrated, you don't need either of these to solve this problem. Vectorization is your friend.
Solution Comments
Show commentsGroup

Card Games
- 18 Problems
- 25 Finishers
- Card Game
- SET (the card game)
- Poker Series 01: isStraightFlush
- Mongean Shuffle : 2
- Mongean Shuffle
- Combine Cards to make 21
- Poker Card Deal!
- Clock Solitaire
- SET (the card game)
- Poker Series 11: selectBestHand
- Poker Series 10: bestHand
- Poker Series 09: IsHighCard
- Poker Series 08: IsPair
- Poker Series 07: IsTwoPair
- Poker Series 06: isThreeKind
- Poker Series 05: isStraight
- Poker Series 04: isFlush
- Poker Series 03: isFullHouse
- Poker Series 02: isQuads
- Poker Series 01: isStraightFlush
Problem Recent Solvers235
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!