How can I divide/split up a matrix by rows between two other matrices?
I have a matrix and a vector each with 3000 rows:
fe = [-0.1850 -0.4485; ...
-0.2150 2.6302; ...
-0.2081 1.5883; ...
-0.6416 -1.1924; ...
-0.1188 1.3429; ...
-0.2326 -2.2737; ...
-0.0799 1.4821; ...
... %# lots more rows
];
tar = [1; ...
1; ...
2; ...
1; ...
2; ...
1; ...
1; ...
... %#lots more rows
];
I would like to divide up the rows of fe
and tar
such that 2/3 of them are placed into one set of variables and the remaining 1/3 are placed into a second set of variables. This is for classification purposes (i.e. one set is training data and the other is test data).
There are two 开发者_如何学Pythonpotential ways for me to do this:
- Split up the rows in order, with the first 2/3 in one matrix and the last 1/3 in another.
- Randomly select and distribute 2/3 of the rows to one matrix and place the remainder in another.
How can I implement each of these solutions?
Assuming you need to select 2/3 of the rows and both the columns, you can do
feTrain=fe(1:2000,:);
feTest=fe(2001:end,:);
If you wanted to assign 2/3 of the rows picked randomly (i.e., not the first 2/3), you can use the randperm
function to generate random ordering of the row indices and use that to index.
nRows=size(fe,1);
randRows=randperm(nRows);%# generate random ordering of row indices
feTrain=fe(randRows(1:2000),:);%# index using random order
feTest=fe(randRows(2001:end),:);
精彩评论