У меня есть CellArray1
с 50 уникальными строками и CellArray2
с 2000 уникальными строками (50 из них такие же, как у CellArray1
). Есть ли способ найти позиции всех 50 уникальных строк из первого массива ячеек во втором массиве ячеек без использования циклов?Ищите несколько значений в массиве ячеек одновременно в Matlab
0
A
ответ
2
Да - Следующий код демонстрирует это:
cellArray1 = {'hello', 'world'};
cellArray2 = {'good', 'morning', 'world'};
overlap = find(ismember(cellArray2, cellArray1)};
Это будет возвращать значение 3
в overlap
так cellArray2{3}
появляется в cellArray1
.
UPDATE
Приведенный выше код возвращает индексы, но не в порядке оригинала. Если вам нужен оригинальный заказ, вы можете сделать следующее
overlap = cellfun(@(x)find(ismember(cellArray2, x)), cellArray1, 'uniformOutput', false);
overlapSorted = cell2mat(overlap);
Можно утверждать, что на самом деле cellfun
имеет неявный цикл в нем (но тогда все векторные операции имеют скрытые петли, на самом деле); но одна из этих конструкций будет делать то, о чем вы просили. Я не думаю, что если вам это не понадобится, первое будет значительно быстрее.
Смежные вопросы
- 1. Как получить несколько максимальных значений в массиве одновременно в matlab?
- 2. Найти вхождения различных значений в массиве ячеек в Matlab
- 3. Matlab: Линейная подгонка данных в массиве ячеек
- 4. matlab: как ускорить подсчет последовательных значений в массиве ячеек
- 5. Matlab - Как сравнить значения в массиве ячеек?
- 6. поиск в массиве ячеек в matlab
- 7. Назначение наборов ячеек в массиве ячеек в MatLab
- 8. Замените NaN нулями в массиве ячеек в MATLAB
- 9. как взять продукт всех ячеек в массиве ячеек в matlab
- 10. длина MATLAB каждого элемента в массиве ячеек
- 11. matlab найти подстроку в массиве ячеек
- 12. Измените положение элементов в массиве ячеек (Matlab)
- 13. сортировки число строк в массиве ячеек (MATLAB)
- 14. Matlab - удалить нулевые строки в массиве ячеек
- 15. Поиск индексов в массиве ячеек Matlab структур
- 16. Вычислить функцию, сохраненную в массиве ячеек Matlab
- 17. Оценка уравнения в массиве ячеек, MATLAB
- 18. Среднее значение в массиве ячеек MATLAB
- 19. Ищите часть строки в массиве?
- 20. MATLAB Сопоставьте строку в массиве ячеек, если массив выборочных ячеек
- 21. MATLAB индексирование всех ячеек в массиве ячеек матриц
- 22. MATLAB: Используйте значения в двойном массиве для определения значений в массиве ячеек строк
- 23. присвоить множество значений в массиве ячеек
- 24. Как проверить тип значений в массиве ячеек?
- 25. (Matlab) Копировать диапазон значений ячеек в другой диапазон ячеек
- 26. Как оценивать объекты Matlab в массиве ячеек без циклов?
- 27. php несколько значений в массиве
- 28. PHP: несколько значений в массиве
- 29. Meteor.find несколько значений в массиве
- 30. Определить несколько переменных одновременно в MATLAB
Нужно ли сортировать результат - другими словами, если первый массив равен {'A', 'B', 'C'}, а второй - Z ... A, вы ожидаете, что ответ будет [26,25,24] или [24,25,26] приемлемо? – Floris