我想整理我的数据行(在一个唯一的行中不会有混洗,它必须保持不变 - 我的意思是单行中的所有单个单元格不能更改)。在我的Excel文件中的行数大约是170000.如何随机(随机)随机存储由Matlab存储在Excel文件中的大数据?
我需要的是随机洗牌其中的所有行。我如何通过mat-lab命令来做到这一点?代码或算法请!
我想整理我的数据行(在一个唯一的行中不会有混洗,它必须保持不变 - 我的意思是单行中的所有单个单元格不能更改)。在我的Excel文件中的行数大约是170000.如何随机(随机)随机存储由Matlab存储在Excel文件中的大数据?
我需要的是随机洗牌其中的所有行。我如何通过mat-lab命令来做到这一点?代码或算法请!
对于reading and writing excel files看到xlsread
和xlswrite
。
要randomly shuffle一个矩阵的行:
M = magic(5);
Mshuffled = M(randperm(size(M, 1)), :)
正如@丹所说,你可以使用xlsread
和xlswrite
的Excel文件的操作。您可以使用randperm
来有效地实现混洗,但实现此目的的另一种方法是使用randsample
命令。
例如:
>> A = randint (5,2,[1,10])
A =
2 2
10 5
10 10
5 8
9 10
>> A(randsample(1:size(A,1),size(A,1)),:)
ans =
10 5
2 2
9 10
10 10
5 8
感谢丹的提示。 恐怕这可能无法解决我的需求。每个单元格内的单个数据不能修改,它必须是相同的。洗牌需要连续进行。所有行(1到170000)都需要随机填充。 – mmenvo 2013-05-02 06:22:20
@MustafaMamun我不知道我是否按照你的问题。此代码将混洗所有行,而不是在不更改任何数据的情况下对列进行洗牌 – Dan 2013-05-02 06:31:04
@ Dan:当行数很多时,我遇到了matlab错误。例如:我使用了314258行。并且matlab显示错误>“程序所允许的最大变量大小被超出”。此外,matlab还显示魔术和meshgrid错误。我已经使用了excell插件来完成这个工作,但是我不得不将数据集分成两部分,随机随机混合行和后期处理需要很长时间。 现在该怎么做这种matlab erros?你可以帮我吗。 – mmenvo 2013-05-03 09:37:03