我可以从矩阵数据集中随机选择数据量吗?

时间:2019-03-16 16:15:53

标签: matlab matrix sampling

我可以从数据集中随机地固定行数吗?

示例

 A=[1 2 3 4; 
   5 6 7 8; 
   9 10 11 12; 
   13 14 15 16; 
   17 18 19 20];

我想随机选择训练数据集3行,随机选择测试数据集2行。

training_dataset= [1 2 3 4; 
                   13 14 15 16;
                   5 6 7 8;];

   testing_dataset= [ 9 10 11 12; 
                    17 18 19 20];

我从数组中只找到随机数。

非常感谢您

1 个答案:

答案 0 :(得分:2)

此解决方案使用randpermsetdiff命令。

indTrainRow = randperm(size(A,1),3)
indTestRow = setdiff(1:size(A,1),indTrainRow)

training_dataset = A(indTrainRow,:);
testing_dataset = A(indTestRow,:);

您也可以使用randsample,但这需要统计工具箱。

indTrainRow = randsample(1:size(A,1),3,'false') 

发布此帖子后,我发现了一些相关的帖子。我的错误是在回答之前没有找到这些。

相关帖子
Random selection of matrix columns
How can I divide/split up a matrix by rows between two other matrices?