我试图将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]
谢谢!
答案 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