필터 지우기
필터 지우기

Extracting every n number of column from matrix matlab

조회 수: 34 (최근 30일)
Aybars
Aybars 2018년 5월 3일
댓글: Ameer Hamza 2018년 8월 16일
0 down vote favorite I need to extract every n number of column from my matrix. Please note that not every nth column. For example I have a matrix:
A =
1 23 34 53 67 45 67 45
12 34 45 56 67 87 98 12
1 2 3 45 56 76 87 56
And I want to extract each 3 column, so my data should be like:
X =
1 23 34 67 45 67
12 34 45 67 87 98
1 2 3 56 76 87
So I would skip 4th column then 8th column and so on. I know how to extract every nth column and row but I couldn't figure it out what I need. Appreciated for your help

채택된 답변

Ameer Hamza
Ameer Hamza 2018년 5월 3일
편집: Ameer Hamza 2018년 5월 3일
Here is a general solution to your problem in which you can specify how many columns to keep and how many to delete
colToKeep = 2;
colToDelete = 3;
ColIndex = mod( 0:size(A,2)-1, colToKeep+colToDelete ) < colToKeep;
A(:, ~ColIndex) = [];
Use colToKeep and colToDelete to specify the values.
  댓글 수: 6
Ee Woon Lim
Ee Woon Lim 2018년 8월 16일
How do we do this for rows?
Ameer Hamza
Ameer Hamza 2018년 8월 16일
Just take the transpose of the matrix and apply the same method. At the end take the transpose again to get the correct matrix.

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

Yuvaraj Venkataswamy
Yuvaraj Venkataswamy 2018년 5월 3일
편집: Yuvaraj Venkataswamy 2018년 5월 3일
Answer is below where A is a your matrix.
if true
n=4;
A =[1 23 34 53 67 45 67 45
12 34 45 56 67 87 98 12
1 2 3 45 56 76 87 56]
A(:,n:n:end) =[]
end
  댓글 수: 1
Aybars
Aybars 2018년 5월 3일
Hi, Thank you very much for your answer. It is correct. But in that case, how can I adjust the number of column that I want to skip ? For example I would like to take first 2 columns, then skip 3 columns then take 2 columns again.

댓글을 달려면 로그인하십시오.


Guillaume
Guillaume 2018년 5월 3일
X = A;
X(:, 4:4:end) = [];
  댓글 수: 1
Aybars
Aybars 2018년 5월 3일
Hi, Thank you very much for your answer. It is correct. But in that case, how can I adjust the number of column that I want to skip ? For example I would like to take first 2 columns, then skip 3 columns then take 2 columns again.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Matrix Indexing에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by