Я искал форум и не нашел достаточно информации, чтобы помочь мне решить эту проблему.Расширение ismember для ячеек
Рассмотрим множество (ячейка векторов)
A = {[1],[1 2],[2],[1 2 3],[1 2 3 4],[1 3]}
Я хочу построить матрицу B, которая выглядит как
B = [1 1 0 1 1 1
0 1 0 1 1 0
0 1 1 1 1 0
0 0 0 1 1 0
0 0 0 0 1 0
0 0 0 1 1 1]
матрица B определяет членство векторов по отношению друг к другу. То есть первая строка смотрит на первый элемент в A, [1] и проверяет, является ли он членом других векторов, поместив 1, если он является членом, и 0 в противном случае.
я могу сделать это, используя два для петель: одна по элементам А, а другой вложен, для каждого элемента, который проверяет членство в отношении любого другого члена А.
Я хочу, чтобы избежать используя для петель. Существует ли векторизованное решение для получения B из A?
Хорошее решение. Вы упомянули, что cellfun - двоюродный брат цикла - он в основном просто перебирает все элементы клетки? – jonem
@jonem Да, он берет каждую ячейку от ввода/с и применяет указанную функцию к ней/им. По производительности это похоже на цикл. Векторизация обычно не возможна для клеток :-( –