MATLAB Answers


Keeping rows of a matrix between two indicies.

Asked by Jason
on 1 Feb 2018
Latest activity Commented on by Jason
on 1 Feb 2018
Hi. I want to remove all rows from a matrix below idx1 and above idx2. that is I only want to keep rows that are between idx1 and idx2.
I have used this to do the 1st part:
C2(1:idx1,:) = []; %Trim the first rows upto idx1
But can't quite work out how to include removing above idx2 as the indexes will have changed now the above removal has occurred?


Sign in to comment.

2 Answers

Answer by Birdman
on 1 Feb 2018
Edited by Birdman
on 1 Feb 2018
 Accepted Answer

One approach:
A=randi([1 5],15,5);%demo data


Doesn't this remove all rows between the two indicies?
I changed it. Now check the answer.
Perfect, thanks Jason

Sign in to comment.

Answer by Jos (10584)
on 1 Feb 2018

I just want to point you to the following logic: if you start removing at the end, no indices will change:
A(ix2:end,:) = []
A(1:ix1,:) = []
However, you are much better off using Birdman's approach:
A = A(ix1+1:ix2-1,:) % include ix1 and ix2 for removal, per your example

  1 Comment

Thankyou for this

Sign in to comment.