How can I delete even rows in a matlab Matrix

Hello
My Idea consists in deleting every row with an even index (I wanted to test something).
But this code does not seem to work.
I get the error " Matrix index is out of range for deletion. "
Thank you
Y=magic(10)
%T = Y (1:2:end , 1:3:end );
T=Y
[a,b]=size(T);
for i = 1:a
r=rem(i,2);
if (r == 0)
T(i, :)=[];
end
T
end

 Accepted Answer

Stephan
Stephan on 23 Nov 2020
Edited: Stephan on 23 Nov 2020
>> A = [1 2 3; 4 5 6; 7 8 9; 0 -1 -2]
A =
1 2 3
4 5 6
7 8 9
0 -1 -2
>> A(2:2:end,:) = []
A =
1 2 3
7 8 9

3 Comments

It worked thank you
Is it possible also to get every 3rd column in a matrix? I don't want to use A(:, 1:3:end).
I want to be able to delete columns and not copy the wanted ones
A(:, 1:3:end) = [];
will delete every third column without copying te wanted ones. If you dont want to use this syntax you have to use a loop - but why should you do this?
I want to get every third column starting from from the first one (it counts). Displayed will be : first, fourth, seventh etc...

Sign in to comment.

More Answers (0)

Tags

Asked:

on 23 Nov 2020

Commented:

on 23 Nov 2020

Community Treasure Hunt

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

Start Hunting!