У меня есть 3D-изображение с размерами строк x cols x deps. Для каждого вокселя изображения я вычислил реальную симметричную матрицу 3x3. Они хранятся в массиве D, который, следовательно, имеет форму (rows, cols, deps, 6).
D хранит 6 уникальных элементов симметричной матрицы 3x3 для каждого воксела моего изображения. Мне нужно найти псевдо-инверсию Мура-Пенроуза для всех матриц row * cols * deps одновременно / в векторизованном коде (цикл через каждый воксель изображения и инвертирование слишком медленное в Python).
Некоторые из этих симметричных матриц 3x3 неособые, и я могу найти их инверсии в векторизованном коде, используя аналитическую формулу для истинной инверсии невырожденной симметричной матрицы 3x3, и я это сделал.
Однако для тех матриц, которые ЯВЛЯЮТСЯ сингулярными (а они обязательно будут), мне нужен псевдообратный алгоритм Мура-Пенроуза. Я мог бы вывести аналитическую формулу для MP реальной, сингулярной, симметричной матрицы 3x3, но это действительно неприятная / длинная формула и, следовательно, будет включать ОЧЕНЬ большое количество (поэлементных) матричных арифметических операций и немного запутать ищу код.
Следовательно, я хотел бы знать, есть ли способ одновременно численно найти псевдообратную МП для всех этих матриц сразу. Есть ли способ сделать это?
С благодарностью, GF