沿着3 D阵列的索引

时间:2016-04-01 11:07:15

标签: matlab matrix multidimensional-array

考虑在三维数组中连接两个点X(a,b,c)和Y(d,e,f)的线。除了最小二乘之外,如何在线之间找到它们之间所有点的指数?

1 个答案:

答案 0 :(得分:1)

你应该绝对远离最小二乘,如果我理解你的相关性,它将浏览整个3D空间。相反,请查看Bresenheim's Line Algorithm

基本上,您从起始立方体开始,计算每个XYZ方向的线条渐变,然后开始行进。

您在X(例如)方向上交替行进,直到该行不再位于多维数据集内,然后切换到任何其他方向(Y,Z)将该行带回当前多维数据集。依此类推,直到目前的立方体为目标。

所有常用链接都是2D,但3D中的过程完全相同。

棘手的比特在于选择开始匹配的方向。 3D中有一个算法,可以适应2D。

备注: 一个很酷的优化是,每次你在一个给定的方向上行进,你可以直接行进Nx,或Ny或Nz。这3个数字可以预先计算,永远不会改变。

一个较冷的优化,你应该只需要在开始时计算X-Y-Z迭代的顺序(在某些情况下可能是Y,X,Z)。然后行进很周期,并且应该保持不变直到达到目标。