matlab怎么把样本和标签打乱,matlab中训练样本随机打乱的方法
使用randperm(),产生随机种子,然后交换位置,达到随机抽取样本的目的。官方内容:Matlab自带函数randperm(n)产生1到n的整数的无重复的随机排列,利用它就可以得到无重复的随机数。function p = randperm(n);%RANDPERM Random permutation.% RANDPERM(n) is a random permutation of the in
使用randperm(),产生随机种子,然后交换位置,达到随机抽取样本的目的。
官方内容:
Matlab自带函数randperm(n)产生1到n的整数的无重复的随机排列,利用它就可以得到无重复的随机数。
function p = randperm(n);
%RANDPERM Random permutation.
% RANDPERM(n) is a random permutation of the integers from 1 to n.
% For example, RANDPERM(6) might be [2 4 5 6 1 3].
%
% Note that RANDPERM calls RAND and therefore changes RAND‘s state. %
% See also PERMUTE. % Copyright 1984-2002 The MathWorks, Inc.
% $Revision: 5.10 $ $Date: 2002/04/09 00:26:14 $
[ignore,p] = sort(rand(1,n));
原理:
1. rand(1, n)产生1行n列的0-1之内的随机数矩阵。
2. sort()把这个矩阵排序,返回的ignore是排序后的序列,p是排序后的序列的各数原来的索引,这个索引肯定是随机的,而且是在1到n间无重复的整数。
上代码:
>> a = rand(10,4)
a =
0.9516 0.3015 0.0326 0.6448
0.9203 0.7011 0.5612 0.3763
0.0527 0.6663 0.8819 0.1909
0.7379 0.5391 0.6692 0.4283
0.2691 0.6981 0.1904 0.4820
0.4228 0.6665 0.3689 0.1206
0.5479 0.1781 0.4607 0.5895
0.9427 0.1280 0.9816 0.2262
0.4177 0.9991 0.1564 0.3846
0.9831 0.1711 0.8555 0.5830
>> RandIndex = randperm( length( a ) ); % 随即打乱数组索引
a = a( RandIndex,: ); % 用新的索引构造打乱后的数组
>> a
a =
0.9831 0.1711 0.8555 0.5830
0.9516 0.3015 0.0326 0.6448
0.7379 0.5391 0.6692 0.4283
0.9203 0.7011 0.5612 0.3763
0.9427 0.1280 0.9816 0.2262
0.4177 0.9991 0.1564 0.3846
0.0527 0.6663 0.8819 0.1909
0.5479 0.1781 0.4607 0.5895
0.2691 0.6981 0.1904 0.4820
0.4228 0.6665 0.3689 0.1206
原文:http://blog.csdn.net/u013476464/article/details/41595209
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)