How to get certain matrix columns.

3 views (last 30 days)
Hello,
I'm having trouble trying to get certain matrix columns. Let's say I have Matrix A:
A = [1 2 3 4 5 6 7 8 9 10 11 12; 13 14 15 16 17 18 19 20 21 22 23 24]
Let's say I'd like to get every third value starting in position 1. Then I would use this code:
A(:,1:3:end)
My issue is that I'd like to skip four positions and get the next two. This would be my output if I started from the first position:
Output = [1 2 7 8; 13 14 19 20]
I could get every column manually but since I'm working with big matrixes and different sizes it woldn't be convininient.
Can someone come around a solution for this?
Thnak you in advance,
Santos

Accepted Answer

Stephan
Stephan on 21 Apr 2021
Edited: Stephan on 21 Apr 2021
A = [1 2 3 4 5 6 7 8 9 10 11 12; 13 14 15 16 17 18 19 20 21 22 23 24]
A = 2×12
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
A1 = reshape(A',2,[])
A1 = 2×12
1 3 5 7 9 11 13 15 17 19 21 23 2 4 6 8 10 12 14 16 18 20 22 24
b = A1(:,1:3:end)
b = 2×4
1 7 13 19 2 8 14 20
b = b(:)'
b = 1×8
1 2 7 8 13 14 19 20

More Answers (0)

Categories

Find more on Operating on Diagonal Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by