Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 将数组拆分为两个随机长度的数组_Matlab - Fatal编程技术网

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

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) 希望运行上述代码几次

我试图在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和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
就可以了