如何获取存储在4D矩阵中的矩阵的索引



我正在写一些代码,通过这些代码,我存储了一个灰度图像,该图像被分割成4D阵列中的"块"。我将循环浏览4D阵列中的所有"块",并根据块的内容进行计算。我只想比较彼此靠近的"块",要做到这一点,我只需要计算"块"之间的距离,而不需要遍历太远的块。要做到这一点,我需要4D矩阵中每个"块"的索引,最终创建我的问题。

我的代码是这样的:

for i=4dmatrix1
    for j=4dmatrix2
        % Do calculations here involving the index of i
        % and j in their respective matrices.
    end
end

我有I和j,但我想分别在4d矩阵1和4d矩阵2中找到它们的索引。4dmatrix1和4dmatrix2是已被分割成20x20像素的"块"的灰度图像。4dmatrix1和4dmatrix2中的每个矩阵都是图像1和图像2中的"块"。我之所以使用这种方法来存储数据,因为它仍然代表图像的形状,只是分成20x20个块。在我看来,这是可以理解的,但也许对于编程来说,这是低效的,应该改变。如果是,你建议调查什么?

谢谢!

您可以在任何维度的矩阵索引上循环,然后使用ind2sub将其映射到下标。基本上,语法是

[id1,id2,id3,id4] = ind2sub(size(my4Dmatrix, i));

j也有类似的情况。
这不是你的问题,但你的循环方式似乎不太正确。此外,您应该包括一个最低限度的工作示例,包括生成几个矩阵和使用正确的语法(在MATLAB中,变量名不能以数字开头(。

相关内容

  • 没有找到相关文章

最新更新