[已解决] 如何划分这种cell类型的数据

[复制链接]
wx_l7KZkR7r 发表于 2021-10-12 11:42:33
本帖最后由 wx_l7KZkR7r 于 2021-10-12 13:13 编辑

想把图片中的这种cell数据划分训练集和测试集尝试过用[trainInd,testInd] = dividerand(XTrain,0.7,0.3但是这个代码会把我单元格内的矩阵划分掉,我希望的是以每一个单元格为整体,把这个570*1的一列数据在保持格式不变的情况下随机划分为两列分别存于两个新的cell中,分别70%训练集和30%测试集
备注:每个单元格有其对应标签
微信图片_20211012112759.jpg

最佳答案


TouAkira 发表于 2021-10-12 13:44:26
直接对索引序号进行分配不就得了么
A = rand( 2, 2, 20 );
C = mat2cell( A, size( A, 1 ), size( A, 2 ), ones( 1, size( A, 3 ) ) );
new_c = squeeze( C ) ;
[ trainInd, testInd ] = dividerand( size( new_c, 1 ), 0.7, 0.3 )
trainCell = new_c( trainInd, 1 )
testCell = new_c( testInd, 1 )

请先仔细看发帖提示和置顶帖子,尤其是《 你知道如何正确提问么? 》、《 为什么你的帖子没人回 》这些帖子

请先去看一看,想一想,最最基本的"方便你自己、也方便回答者"的几条指南
粘贴一个简单的程序.别人可以直接复制运行(尽量避免使用附件,Simulink模型除外)
对了还有同学把数据/代码的截屏按图片方式传上来发帖的,表示不是每个人都有耐心按你的图把代码敲出来的。这种情况通常也会导致没人回答。

都做到了吗?
请养成好习惯,不要通过发截图的方式来发帖,同样是上传附件,直接把数据保存为mat文件发上来,比截图有用得多。
回复此楼

2 条回复


TouAkira 发表于 2021-10-12 13:44:26
直接对索引序号进行分配不就得了么
A = rand( 2, 2, 20 );
C = mat2cell( A, size( A, 1 ), size( A, 2 ), ones( 1, size( A, 3 ) ) );
new_c = squeeze( C ) ;
[ trainInd, testInd ] = dividerand( size( new_c, 1 ), 0.7, 0.3 )
trainCell = new_c( trainInd, 1 )
testCell = new_c( testInd, 1 )

请先仔细看发帖提示和置顶帖子,尤其是《 你知道如何正确提问么? 》、《 为什么你的帖子没人回 》这些帖子

请先去看一看,想一想,最最基本的"方便你自己、也方便回答者"的几条指南
粘贴一个简单的程序.别人可以直接复制运行(尽量避免使用附件,Simulink模型除外)
对了还有同学把数据/代码的截屏按图片方式传上来发帖的,表示不是每个人都有耐心按你的图把代码敲出来的。这种情况通常也会导致没人回答。

都做到了吗?
请养成好习惯,不要通过发截图的方式来发帖,同样是上传附件,直接把数据保存为mat文件发上来,比截图有用得多。
回复此楼

wx_l7KZkR7r 发表于 2021-10-14 11:28:38
TouAkira 发表于 2021-10-12 13:44
直接对索引序号进行分配不就得了么
A = rand( 2, 2, 20 );
C = mat2cell( A, size( A, 1 ), size( A, 2 ),  ...

如何把数据集按标签等比例划分?(附mat文件)
https://www.ilovematlab.cn/thread-611047-1-1.html
(出处: MATLAB中文论坛)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表