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 potential 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
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.