How to select specific row in a matrix

8 Ansichten (letzte 30 Tage)
Ikra89
Ikra89 am 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

Antworten (2)

Shashank Prasanna
Shashank Prasanna am 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 Kommentare
Jan
Jan am 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
Ikra89 am 13 Feb. 2013
Bearbeitet: Ikra89 am 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.

Melden Sie sich an, um zu kommentieren.


Thorsten
Thorsten am 11 Feb. 2013
Bearbeitet: Thorsten am 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 Kommentar
Ikra89
Ikra89 am 13 Feb. 2013
Bearbeitet: Ikra89 am 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.

Melden Sie sich an, um zu kommentieren.

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by