How to delete every "n thru m" rows?

13 visualizzazioni (ultimi 30 giorni)
Nicole Ralbovsky
Nicole Ralbovsky il 22 Apr 2021
Modificato: David Hill il 22 Apr 2021
I have a matrix which contians 27, 260 rows and one column. I need to delete every 151-181 rows of the data set. Is there a code with which I can do this? Essentially, instead of wanting to delete every "n" rows, I want to delete every "n thru m" rows. Thanks.

Risposte (1)

David Hill
David Hill il 22 Apr 2021
I might not understand your question fully. What is the size of your matrix? (260x1)
yourMatrix(151:181,:)=[];%deletes rows in matrix
  2 Commenti
Nicole Ralbovsky
Nicole Ralbovsky il 22 Apr 2021
Modificato: Nicole Ralbovsky il 22 Apr 2021
Thanks for the quick response. The matrix is 27460x1 and I would like to delete every 151-181 rows. So instead of deleting every 151 ("nth") row, I want to delete every 151-181 rows.
David Hill
David Hill il 22 Apr 2021
Modificato: David Hill il 22 Apr 2021
Just add nan to end of matrix so you can reshape, and remove nan at end of operation.
yourMatrix(end+1:27512)=nan;
yourMatrix=reshape(yourMatrix,181,[]);
yourMatrix(151:181,:)=[];
yourMatrix=yourMatrix(:);
yourMatrix(isnan(yourMatrix))=[];

Accedi per commentare.

Categorie

Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by