Arrays Matlab使用4D阵列中的每个向量

Arrays Matlab使用4D阵列中的每个向量,arrays,image,matlab,image-processing,Arrays,Image,Matlab,Image Processing,我有一个4D大小的矩阵,比如100x200x3x10,其中100x200是一个图像的大小,3是通道数(RGB图像),10是图像数 我想计算每个图像中每个RGB向量的内积。生成的图像大小应为100x200x10。如果不使用循环,我如何有效地计算这些产品 谢谢。如果您调用矩阵M,应该可以: squeeze(dot(M,M,3)) 压缩是因为matlab给出了一个100x200x1x10的矩阵作为结果,压缩消除了冗余维度。如果调用矩阵M,这应该可以: squeeze(dot(M,M,3)) 挤压是

我有一个4D大小的矩阵,比如100x200x3x10,其中100x200是一个图像的大小,3是通道数(RGB图像),10是图像数

我想计算每个图像中每个RGB向量的内积。生成的图像大小应为100x200x10。如果不使用循环,我如何有效地计算这些产品


谢谢。

如果您调用矩阵
M
,应该可以:

squeeze(dot(M,M,3))

压缩
是因为matlab给出了一个100x200x1x10的矩阵作为结果,
压缩
消除了冗余维度。

如果调用矩阵
M
,这应该可以:

squeeze(dot(M,M,3))
挤压
是因为matlab给出了一个100x200x1x10矩阵作为结果,
挤压
去掉了冗余维度