Matlab:随机化和拆分

Matlab:随机化和拆分,matlab,matrix,split,Matlab,Matrix,Split,我在Matlab中有以下数据矩阵,我试图通过将变量传递给Matlab函数,将其分成多个部分。但是在分割之前,我想洗牌矩阵。我的矩阵大小为150X4 s.data 5.1000 3.5000 1.4000 0.2000 4.9000 3.0000 1.4000 0.2000 4.7000 3.2000 1.3000 0.2000 4.6000 3.1000 1.5000 0.2000 5.0000 3.6000 1

我在Matlab中有以下数据矩阵,我试图通过将变量传递给Matlab函数,将其分成多个部分。但是在分割之前,我想洗牌矩阵。我的矩阵大小为
150X4

s.data
5.1000    3.5000    1.4000    0.2000
4.9000    3.0000    1.4000    0.2000
4.7000    3.2000    1.3000    0.2000
4.6000    3.1000    1.5000    0.2000
5.0000    3.6000    1.4000    0.2000
..

s = 

  data: [150x4 double]
labels: [150x1 double]
来自R环境的我发现MatLab非常奇怪。起初,我认为矩阵中的列与R数据帧中的列有类似的关系,但我的假设是错误的

或者您可以执行以下操作:

new_data=data(randsample(1:length(data),length(data)),:)
 perm=randperm(numel(data)); % generate a random permutation
 data = reshape(data(perm),size(data)); % apply it to data

作为对随机排列答案的补充,为了将数据拆分为每个矩阵的
15x2
,您可以使用
mat2cell

data = rand(150,4);        %# generates a random 150x4 matrix
rowdiv = repmat(15,1,10);  %# size of each chunk in rows. Must sum to 150
coldiv = repmat(2,1,2);    %# size of each chunk in cols. Must sum to 4
datacell = mat2cell(data, rowdiv, coldiv)
它将返回一个包含20个矩阵的单元格,这些矩阵由
datacell{x,y}
访问:

datacell = [15x2 double] [15x2 double] [15x2 double] [15x2 double] [15x2 double] [15x2 double] [15x2 double] [15x2 double] [15x2 double] [15x2 double] [15x2 double] [15x2 double] [15x2 double] [15x2 double] [15x2 double] [15x2 double] [15x2 double] [15x2 double] [15x2 double] [15x2 double] 将返回:

datacell = [15x4 double] [15x4 double] [15x4 double] [15x4 double] [15x4 double] [15x4 double] [15x4 double] [15x4 double] [16x4 double] [14x4 double] 数据单元= [15x4双精度] [15x4双精度] [15x4双精度] [15x4双精度] [15x4双精度] [15x4双精度] [15x4双精度] [15x4双精度] [16x4双精度] [14x4双精度]
你所说的随机化是什么意思?得到一堆随机值?按随机顺序排列?对不起,这是一个类似洗牌的场景。。让我在问题中更新一下,你想知道如何分割你的矩阵吗?是的,那太棒了,我真正想做的是给这个s。数据洗牌并分割成10块。如果你能解释一下,那就太好了。我的答案与@Oli的不同。他的答案保留了矩阵的元素,并将它们在新矩阵中的任意位置随机化,而我的答案洗牌了矩阵,保持了行的完整性。你能解释一下这里的数据吗?@Null-hyporation
data
将等同于
s.data
,在你上面的例子中。 datacell = [15x4 double] [15x4 double] [15x4 double] [15x4 double] [15x4 double] [15x4 double] [15x4 double] [15x4 double] [16x4 double] [14x4 double]