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];
Many of the test cases are wrong.
For example:
A = (1:2:10)';
IND = 1:5;
b = (2:2:10)';
y_correct = (1:10)';
y_correct should be [2:2:10,1:2:10]'
The zeros one has zeros that are the wrong size etc.
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.
Which values occur exactly three times?
3196 Solvers
How to find the position of an element in a vector without using the find function
2264 Solvers
335 Solvers
Project Euler: Problem 5, Smallest multiple
219 Solvers
Compute a dot product of two vectors x and y
620 Solvers