Есть ли в Python функция, которая дает вам логическое пересечение двух 2d матриц? - PullRequest
0 голосов
/ 21 октября 2019

Я пытаюсь взять две двоичные 3d матрицы и найти их логическое пересечение. Пример матрицы, которую я пытаюсь использовать, можно найти на рисунках, которые я прикрепил из Excel. Я подумал, что это будет самый простой способ для вас понять, если я не добавлю тонну кода в этот вопрос. Обе эти матрицы будут спроецированы таким образом, чтобы они имели одинаковый размер.

matrix1 = [[[1,0,1],[1,0,1],[1,1,1]],[[1,0,1],[1,0,1],[1,1,1]],[[1,0,1],[1,0,1],[1,1,1]]]

matrix2 = [[[1,0,1],[1,0,1],[1,1,1]],[[1,0,1],[1,0,1],[1,1,1]],[[1,0,1],[1,0,1],[1,1,1]]]

matrix3 = ##I need their boolean intersection

Эти две 2-мерные матрицы будут спроецированы в 3d, делая их квадратными из вида сверху

enter image description here

1 Ответ

0 голосов
/ 21 октября 2019

Логическое пересечение - это просто оператор AND для каждой пары элементов, поэтому вы можете использовать понимание списка в рекурсивной функции, например, так:

def Intersect(a, b):
    if type(a) == list and type(b) == list:
        return [Intersect(x, y) for x, y in zip(a, b)]
    return a and b

Это не проверяет, действительно ли матрицыту же форму, вы можете сначала сделать это отдельно или проверить внутри рекурсивной функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...