Matlab 将数组拆分为两个随机长度的数组
我试图在Matlab中将一个未知长度的数组拆分为两个随机长度的数组。我想我能做到,但它有点笨重。我还希望能够在以后保存所有可能的组合(子阵列1的矩阵和子阵列2的矩阵),但我在这样做时遇到了困难,因为它们的长度都不同,所以无法保存在矩阵中。我应该改用电池吗 下面是我分割数组的代码Matlab 将数组拆分为两个随机长度的数组,matlab,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) 希望运行上述代码几次
Array = [1 2 4 5 6 2 3]
x = randi(length(Array))
newArray1 = Array(1:x)
newArray2 = Array(x+1:end)
希望运行上述代码几次,并将array1和Array2的每个组合保存在其自己的矩阵或单元格中,如下所示
all_of_Array1 = [all_ofArray1:newArray1]
all_of_Array2 = [all_ofArray2:newArray2]
谢谢 所以你只想要一个循环
%//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
使用
x=randi(长度(数组))
可能newArray2
为空。使用x=randi(长度(数组)-1)代码>如果你不想that@LuisMendo但是你也不希望x
成为1
,因为同样的原因,对吧?所以它不应该是x=randi(长度(数组)-2)+1
?@Dan否,因为randi
从1开始,而不是从0开始newArray1=Array(1:x)
如果x
等于1
就可以了