楼主: Brook1114
1361 1

[Matlab基础] 如何拆分数据集 [推广有奖]

  • 0关注
  • 0粉丝

硕士生

98%

还不是VIP/贵宾

-

威望
0
论坛币
735 个
通用积分
0
学术水平
1 点
热心指数
0 点
信用等级
0 点
经验
2362 点
帖子
124
精华
0
在线时间
39 小时
注册时间
2009-2-4
最后登录
2020-9-8

楼主
Brook1114 发表于 2011-9-16 07:50:15 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
老师你好:

我想用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个小数据集? 谢谢。



二维码

扫码加我 拉你入群

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

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

关键词:数据集 dataset MATLAB matla DataS 老师你好 matlab 如何

沙发
Xaero 发表于 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这些作为循环变量嘛。至于为什么,你在讲义上找找吧。哈哈
十年一觉扬州梦。
智不足以Academy,才尚不够Industry,[情无力于Life]。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-9 16:35