开发者

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),:);
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜