在MATLAB中迭代维度

时间:2012-03-03 17:11:49

标签: matlab image-processing multidimensional-array

如何将这些命令简化为MATLAB中的单行?

medoidContainer(:, i, 1) = squeeze(reshape(container(:, :, 1),1, y * x));
medoidContainer(:, i ,2) = squeeze(reshape(container(:, :, 2),1, y * x));
medoidContainer(:, i ,3) = squeeze(reshape(container(:, :, 3),1, y * x));

使用它们,我将RGB图像重塑为单行矩阵(对于每种颜色)。但是,如何在不必遍历每个维度的情况下执行此操作?


我尝试过:

medoidContainer(:, i ,1:3) = squeeze(reshape(container(:, :, 1:3),1, y * x));

但这不起作用。

1 个答案:

答案 0 :(得分:1)

听起来您正在尝试将M x N x 3数组转换为(M*N) x 3数组。您可以按如下方式执行此操作:

a = reshape(container, [M*N 3]);

要将它分配到“容器”中,我认为你需要这个:

medoidContainer(:,i,:) = a;