удаление строк из матрицы на основе значения массива ячеек

У меня есть 2 массива ячеек и одна матрица. Первый массив ячеек, называемый all_ids, представляет собой ячейку размером 6650 x 1, содержащую строки. Второй массив ячеек под названием «needed_ids» является подмножеством «all_ids» и представляет собой ячейку размером 6600 x 1, которая также содержит строки.

Матрица с именем «sales_num» представляет собой матрицу двойников размером 6650 x 500, строки здесь связаны со строками «all_ids». Что я хочу сделать, так это удалить некоторые строки из «sales_num». Я хочу удалить строки, которые находятся в «all_ids», но не в «needed_ids». См. пример ниже.

                                                    Result I'm looking for
all_ids      sales_num           needed_ids         sales_num (now altered)
abc1         1                   abc1               1
def1         2                   def1               2
ghi1         7                   jkl1               8
jkl1         8                   mno1               4
mno1         4                   stu1               2
pqr1         12
stu1         2
vwx1         5

person mHelpMe    schedule 16.07.2014    source источник


Ответы (1)


Используйте setdiff -

[~,row_ind] = setdiff(all_ids,needed_ids) %// Find rows exclusive to all_ids
sales_num(row_ind,:)=[]; %// Remove rows that match the exclusiveness
person Divakar    schedule 16.07.2014