全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 统计软件培训班VIP答疑区
1333 1
2011-09-16
老师你好:

我想用matlab 拆分数据集。原始数据集有1000个观察值,我想把它分成5个小数据集,每个数据集有200个观察值。我用for 语句作循环。但是只得到了一个小数据集。请帮我看看问题在哪。

load dataset.txt;
Y(是一个1000*1的向量);
X(是一个1000*4的矩阵);
for i=1:5;
    i1=1+200*(i-1);
    i2=200*i;
    y=Y(i1:i2);
    x=X(i1:i2,:);
end;

您觉得哪里有问题?如何才能一次性生成我想要的5个小数据集? 谢谢。



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2011-9-16 09:15:15
1. 问题所在: 每次循环都把结果赋值到x和y两个变量中,那么下一次循环不就把上一次循环的成果给覆盖了?

2. 解决办法,只要想办法不覆盖就行了嘛。把每次循环的结果都放在一个单独的变量中,例如放在一个cell数组中的一个格子里面。例如把那两句这么改一下:
y{i}=Y(i1:i2);
x{i}=X(i1:i2,:);

如果你想用x1,x2,... 之类的变量名,那么就要用到eval函数了。
eval('y%d=Y(i1:i2);',i);

另外,你没有仔细学课程啊, 在里面我不是说了不要用i这些作为循环变量嘛。至于为什么,你在讲义上找找吧。哈哈
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群