How to select specific row in a matrix

Hi all..
i have a problem to select every row.
for eg:
i have matrix 100x13.
i want to select data which position in row 1-5, 21-25, 41-45, 61-65, 81-85.
so i have 2 new matrixs. first as i described above, and the second is the rest (6-20, 26-40, 46-60, 66-80, 86-100).
i want to apply k-fold method to get training data and testing data.
thanks a lot if somebody can help me.
regards
Ikra

답변 (2개)

Shashank Prasanna
Shashank Prasanna 2013년 2월 11일

1 개 추천

A = rand(100,4);
ind_logical = logical(ones(100,1));
ind_logical([1:5, 21:25, 41:45, 61:65, 81:85])=false;
B = A(~ind_logical,:);
C = A(ind_logical,:);

댓글 수: 2

Jan
Jan 2013년 2월 11일
true(100, 1) is more efficient than creating a double array at first and convert it ino a logical. But the logical indexing is an efficient method here in general: +1.
Ikra89
Ikra89 2013년 2월 13일
편집: Ikra89 2013년 2월 13일
i try to change A = rand(100,4) to fix dimension become 75x13 and 25x13, but the output is different from the real data.
in this case i just want to select data, not to change. thanks a lot for your answer, but if you can fix it, i really appreciate your help.

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

Thorsten
Thorsten 2013년 2월 11일
편집: Thorsten 2013년 2월 11일

0 개 추천

X = rand(100, 13);
ind0 = 1:5; ind1 = ind0;
for i = 1:4, ind1 = [ind1 ind0 + 20*i]; end
ind2 = setdiff(1:100, ind1);
A = X(ind1, :);
B = X(ind2, :);

댓글 수: 1

Ikra89
Ikra89 2013년 2월 13일
편집: Ikra89 2013년 2월 13일
wrong answer. your program not too different with benji bowbow in above. why the output is different with the data? in this case i just want to select data, not to change. thanks a lot for your answer, but if you can fix it, i really appreciate your help.

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

카테고리

도움말 센터File Exchange에서 Data Type Conversion에 대해 자세히 알아보기

제품

질문:

2013년 2월 11일

Community Treasure Hunt

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

Start Hunting!

Translated by