将数组拆分为两个随机长度数组

时间:2014-07-14 13:46:56

标签: matlab

我试图将Matlab中未知长度的数组分成两个随机长度的数组。我想我能够做到这一点,但它有点笨重。我还希望能够保存之后的所有可能组合(子阵列1的矩阵和子阵列2的矩阵),但我无法做到这一点,因为它不能保存在矩阵中,因为它们都有不同的长度。我应该使用细胞吗?

这是我拆分数组的代码

Array = [1 2 4 5 6 2 3]
x = randi(length(Array))
newArray1 = Array(1:x)
newArray2 = Array(x+1:end)

想运行上面的代码几次,并将array1和array 2的每个组合保存在自己的矩阵或单元格中,如下所示

all_of_Array1  = [all_ofArray1:newArray1]
all_of_Array2  = [all_ofArray2:newArray2]

谢谢!

1 个答案:

答案 0 :(得分:2)

所以你只想要一个循环?

%//Pre-allocation
n = 10;
newArray1{n} = [];
newArray2{n} = [];

for k = 1:n
    %//Generate Array here if it changes at each iteration
    Array = [1 2 4 5 6 2 3]
    x = randi(length(Array)-1);
    newArray1{k} = Array(1:x)
    newArray2{k} = Array(x+1:end)
    %//Or replace the 2 lines above with newArray{k,1}=... and newArray{k,2}=...
end