【发布时间】:2012-01-31 16:43:01
【问题描述】:
我在 matlab 中有一个 3D 数据矩阵,但我想从该矩阵中提取任意旋转的数据切片并将其存储为 2D 矩阵,我可以访问它。类似于 slice() 函数如何显示以任意角度切片的数据,除了我还希望能够像查看和修改数据一样查看和修改数据。
我有平面轴心点的坐标以及旋转角度(在 x、y 和 z 轴上),我还计算了平面方程,格式如下:
Ax + By + Cz = D
并且可以提取仅包含落在该平面上的数据的 3D 矩阵,但我不知道如何将其转换为简单的 2D 数组。
另一种方法是在与平面角度相反的方向上以某种方式旋转源矩阵,以便将数据平面与 XY 轴对齐,然后简单地提取矩阵的那部分,但我不知道是否可以旋转这样的矩阵。
我希望这个问题没有在其他地方得到解答,我整天都在谷歌上搜索,但似乎没有一个问题与我的完全匹配。
谢谢
【问题讨论】:
-
您是否只需要完全在平面上的数据(通常是非常少量的数据点)还是做想要插入数据?
-
我想返回最近的单元格而不是插值,虽然稍后会考虑插值
-
要清楚,您有一个包含 3 个索引的矩阵
A[i,j,k]=a_ijk并且您想要创建一个包含 2 个索引的数组B[u,v]=b_uv其中u,v是平面/切片上的坐标i,j,k世界? (并且所有索引都是整数)另外,ijk对应于u=1和v=1是否有一些约定?
标签: matlab 3d matrix rotation slice