我目前正在研究一个在MATLAB中平均图像的函数但我觉得下面的几行可以简单得多,只是我不知道怎么写。
centroidImage(:,:,1) = double(centroidImage(:,:,1)) ./ alphaImage;
centroidImage(:,:,2) = double(centroidImage(:,:,2)) ./ alphaImage;
centroidImage(:,:,3) = double(centroidImage(:,:,3)) ./ alphaImage;
如果我把它写为:
centroidImage = double(centroidImage) ./ alphaImage;
因为尺寸不匹配(alphaImage是[y x],centroidImage是[y x 3])难道没有一种更简单、更有效的方法来迭代
centroidImage
变量的维度,而不必逐一显式地声明它们吗? 最佳答案
您可以使用bsxfun
来执行以下操作:
centroidImage = bsxfun(@rdivide,centroidImage,alphaImage);
关于matlab - 在MATLAB中简化迭代维,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9481362/