Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

How to select specific row in a matrix

Asked by Ikra89 on 11 Feb 2013

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

0 Comments

Ikra89

Products

2 Answers

Answer by Shashank Prasanna on 11 Feb 2013
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 Comments

Jan Simon on 11 Feb 2013

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 on 13 Feb 2013

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.

Shashank Prasanna
Answer by Thorsten on 11 Feb 2013
Edited by Thorsten on 11 Feb 2013
 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 Comment

Ikra89 on 13 Feb 2013

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.

Thorsten

Contact us