MATLAB 随机产生训练集和测试集
函数名:randperm
随机置换
语法
p = randperm(n)
p = randperm(n,k)
说明
p = randperm(n)
返回行向量,其中包含从 1 到 n(包括二者)之间的整数随机置换。
p = randperm(n,k)
返回行向量,其中包含在 1 到 n(包括二者)之间随机选择的 k 个唯一整数。
示例
>>randperm(6) %可能是向量
[3 2 6 4 1 5]
也可能是从 1 到 6 的整数的其他一些置换,具体取决于随机数生成函数的状态。对 randperm 连续调用两次通常会返回两个不同的向量:
>>randperm(6)
ans =
5 2 6 4 1 3
>>randperm(6)
ans =
4 1 6 2 3 5
>> randperm(6,3) %可能是向量
[4 2 5]
也可能是从 1 到 6(包括二者)的任何三个整数的其他一些置换,具体取决于随机数生成函数的状态。
矩阵随机产生示例
% 初始化数据和标签
data=magic(6);
labels=[1 1 1 2 2 2]';
% 随机产生训练集和测试集
n=randperm(size(data,1));
% 4个训练集
train_data=data(n(1:4),:);
train_labels=labels(n(1:4),:);
% 119测试集
test_data=data(n(4:end),:);
test_labels=labels(n(4:end),:);
其中:
>>n
1 4 3 6 5 2
随机产生的
n
n
<script type="math/tex" id="MathJax-Element-42">n</script>前4个对应的是训练样本和标签的1 4 3 6
,即可达到随机产生样本的目的。