Извлечь произвольно повернутую плоскость данных из 3D-массива в виде 2D-массива

У меня есть 3D-матрица данных в Matlab, но я хочу извлечь произвольно повернутый фрагмент данных из этой матрицы и сохранить его как 2D-матрицу, к которой я могу получить доступ . Подобно тому, как функция slice () отображает данные, срезанные под любым углом, за исключением того, что я также хотел бы иметь возможность просматривать и изменять данные, как если бы они были массивом.

У меня есть координаты точки поворота плоскости, а также углы поворота (по осям x, y и z), я также вычислил уравнение плоскости в виде:

Ax + By + Cz = D

и могу извлечь 3D-матрицу, содержащую только данные, которые попадают в эту плоскость, но я не знаю, как затем преобразовать их в простой 2D-массив.

Другой способ сделать это - каким-то образом повернуть исходную матрицу в направлении, противоположном углу плоскости, чтобы выровнять плоскость данных с осью XY, и просто извлечь эту часть матрицы, но я не знаю, возможно ли такое вращение матрицы.

Надеюсь, на этот вопрос больше нигде не ответили, я весь день гуглил, но, похоже, ни одна из проблем не соответствует моей.

Спасибо

6
задан Nick Udell 31 January 2012 в 16:43
поделиться