我目前正在研究一个在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/

10-09 01:47