我有数组包含1列225行,我想从这些元素中随机选择170个元素并将其存储在另一个数组中,同时将剩余元素存储在另一个数组中,我使用此代码随机选择元素但我不知道我知道如何将剩余元素(55)存储在另一个阵列中!
代码:我原来的数组A
msize = numel(A);
firstpart = A(randperm(msize, 170))
secondpart = !!!!! ( remain elements ) % This is my question
答案 0 :(得分:2)
您可以使用布尔索引。
A = rand(255,1); % just generating an example matrix
indices = false(size(A));
indices(randsample(1:numel(A),170)) = true; % select what to keep
firstpart = A(indices);
secondpart = A(~indices);
答案 1 :(得分:2)
不要丢弃其他元素,只需获取所有的排列,然后然后对数组进行分区:
msize = numel(A);
allperm = A(randperm(msize));
firstpart = allperm(1:170);
secondpart = allperm(171:end);