在matlab中随机选择数组中的元素并存储retain元素

时间:2016-05-08 23:23:59

标签: arrays matlab matrix random

我有数组包含1列225行,我想从这些元素中随机选择170个元素并将其存储在另一个数组中,同时将剩余元素存储在另一个数组中,我使用此代码随机选择元素但我不知道我知道如何将剩余元素(55)存储在另一个阵列中!

代码:我原来的数组A

msize = numel(A);
firstpart = A(randperm(msize, 170))

secondpart = !!!!! ( remain elements ) % This is my question 

2 个答案:

答案 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);