2014-12-08 3 views
-2

У меня есть вектор B=[1; 2; 1; 2; 3; 5; 6; 8; 9; 10]удаление недостающих элементов из вектора

где элементы a=[4 7] отсутствуют.

Я хотел бы карту B к «непрерывной» вектор как

B_map=[1; 2; 1; 2; 3; 4; 5; 6; 7; 8] 

извлекая «отсутствующий» элементы (4 7) и «масштабирование» остальной соответственно ..

моя проблема что в зависимости от количества отсутствующих elemenst (в данном случае 2) я должен масштабировать вектор в различных количествах ...

+2

Это кажется неправильным. Что происходит с вектором '[1; 3; 1; 3]'? – aschepler

+0

B_map = [1; 2; 1; 2] – gabboshow

+0

Что случилось с 9 и 10 в 'B' ?? – EBH

ответ

0

Я думаю, что я понял это ...

a = sort(a); 

B_map = B; 

for i = 1:numel(a) 
    clear id_sub 
    id_sub = find(B >= a(i)); 
    B_map(id_sub) = B_map(id_sub)-1; 
end 
Смежные вопросы