#matlab
#matlab
Вопрос:
У меня есть два массива, a и b, разного размера. Каждый из них содержит уникальные значения.
Я хочу сравнить оба, и если какое-либо значение массива a находится в массиве b, то я хочу удалить его из b (например, a = [2 3 5]
, b = [1 8 6 2 3 7]
, results b = [1 8 6 7]
).
Как это может быть реализовано в Matlab?
Ответ №1:
Используйте setdiff
для поиска элементов в одном наборе, но не в другом.
setdiff(b, a)
Ответ №2:
Используйте intersect
с 3 выходными аргументами, чтобы получить индексы элементов, подлежащих удалению:
[c, ia, ib] = intersect(a, b);
b (ib) = [];
Ответ №3:
Еще одним вариантом является использование функции ISMEMBER для удаления элементов из b
, которые являются членами a
посредством логического индексирования:
b(ismember(b,a)) = [];