24小时热门版块排行榜    

查看: 2328  |  回复: 2

gupenggogo

金虫 (小有名气)


[求助] MATLAB中输入数据的随机问题(ind命令)

%说明:代码1,输入变量随机(使用ind)。
clc;clear;
NUM = xlsread('表格1');
xx=NUM(1:66,1:7);%输入数据是66行,7列。前6列为自变量x1~x6,第7列为因变量y。
ind = randperm(66);
xtrain=xx(ind(1:50),1:6);%训练数据x
ytrain=xx(ind(1:50),end);%训练数据y
xtest=xx(ind(51:end),1:6);%测试数据x
ytest=xx(ind(51:end),end);%测试数据y

%说明:代码2,输入变量未随机(没有用ind)。
clc;clear;
NUM = xlsread('表格1');
xx=NUM(1:66,1:7);%输入数据是66行,7列。前6列为自变量x1~x6,第7列为因变量y。
xtrain=xx(1:50,1:6);%训练数据x
ytrain=xx(1:50,end);%训练数据y
xtest=xx(51:end,1:6);%测试数据x
ytest=xx(51:end,end);%测试数据y

问题(1):
代码2中没有使用ind,每次运算后结果恒定唯一。而代码1中使用ind命令,使得输入变量xtrain、xtrain、xtest和ytest随机从xx中提取,每次运行结果都不一样,且最后计算结果比代码2精确(例如xtrain需要50行,不是按照从第一行到第50行从xx中提取。而是随机从xx的66行中提取,不按照顺序,只要满足提取了50行就OK)。以上2个代码主要用于比较ind,ind使得输入的变量随机生成,提高了验算精度,但是我个人对于为何使用ind会提高计算精度感到困惑,搜索关于ind的资料也基本没有。有没有哪位理解的或者有相关资料可以提供的?

问题(2):
ind的好处是提高了运算精度,但是使得最后生成的结果也打乱顺序了(因为一开始从xx中提取时就打乱顺序了)。有没有哪位朋友知道在MATLAB中有没有办法既能达到ind命令的这种效果,又不会打乱数据顺序的?

麻烦大家了,谢谢!
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gupenggogo

金虫 (小有名气)

相关版块跳转 我要订阅楼主 gupenggogo 的主题更新
信息提示
请填处理意见