2017-01-25 4 views
0

Рассмотрите A a m от n. Я хочу разделить A столбца мудрым случайным выбором колонок NumOfRandomColumn. Я использовал этот код, чтобы сгенерировать вектор случайных индексов и извлечь Елки раздел:Как выбрать индексы, которые не указаны в моем индексе вектора MATLAB

indexes=randsample(1:MatrixColumnNumber, NumOfRandomColumn); 
firstSection=A(:,indexes); 

Как извлечь вторую часть, то есть индексы не в «индексов»?

Это не сработало:

secondSection=A(:,~indexes); 

ответ

1

Это должно работать:

notselected = 1:MatrixColumnNumber; 
notselected(indexes) = []; 
secondSection = A(:,notselected); 

Это в основном способ, чтобы сформировать разностное множество между 1: N и выбранный набор индексов. Это также можно сделать с помощью setdiff, но я помню setdiff как медленнее, чем указано выше.