坐标在Matlab的我有一个大的矩阵(512x512x100)。为了分析它,我使用了blockproc。由于该blockproc只接受二维矩阵其实我已经改变了我原来的矩阵为使用二维矩阵mat2cell和其他一些后续步骤。 blockproc函数在每个子矩阵中搜索具有最高值的像素,并返回其参考该子矩阵的坐标。变换相对单元格的坐标,以绝对的矩阵在Matlab
经过几个步骤后,我已经获得了第一个参考第一个变换的最大像素的坐标。现在我想将这些坐标转换为全局坐标,即大原始3D矩阵中的绝对坐标。
我已经尝试一些东西与这个例子:
d =兰特(4,4,4)
d(:,:,1)=
0.0451 0.8044 0.0784 0.7859
0.8911 0.3481 0.4636 0.9806
0.4887 0.5677 0.0999 0.9488
0.7822 0.0467 0.5569 0.2256
d( :,:,2)=
0.8131 0.8880 0.8066 0.8103
0.8240 0.3358 0.8422 0.2552
0.8364 0.2759 0.3753 0.7741
0.9853 0.8297 0.3745 0.5936
d(:,:,3)=
0.1200 0.1841 0.3897 0.0894
0.0747 0.7485 0.4866 0.4722
0.8387 0.9523 0.0166 0.5013
0.8210 0.3107 0.6935 0.1286
d(:,:,4):
细胞=
0.6424 0.7322 0.4631 0.1684
0.5523 0.0953 0.0168 0.6231
0.1073 0.5530 0.8504 0.9304
0.3482 0.7804 0.7657 0.2496
做mat2cell我有后(:,:,1)=
[2x2x2 double] [2x2x2 double]
[2x2x2 double] [2x2x2 double]
cell(:,:,2)=
[2x2x2 double] [2x2x2 double]
[2x2x2 double] [2x2x2 double]
这些是由此产生的坐标。从下面的矩阵的每一行表示最大像素的每个“子电池”的坐标:通过执行
max_px =
2 1
2 3
2 2
1 2
2 2
1 2
2 4
1 4
“小区{1}(2,1)”你:
ANS =
0.8911
至极是最大像素的在第一3D子batrix(第一 “子电池”)的值
我想这是将这些相对坐标转换为全局的非常直接的方式,但我不知道如何。先谢谢你。
我想我已经在[您的上一个问题](http://stackoverflow.com/q/21305443/2586922)中回答了。在我的回答中使用块的'.location'字段 –
再次感谢你,路易斯。我已经使用了你在我以前的问题中告诉我的。结果就是上面例子的坐标矩阵。我的新问题是如何改变这些局部坐标。 – karl71