Итерация по размерам в MATLAB - PullRequest
1 голос
/ 03 марта 2012

Как мне упростить эти команды до одной строки в 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 Ответ

1 голос
/ 03 марта 2012

Похоже, вы пытаетесь преобразовать массив M x N x 3 в массив (M*N) x 3.Вы можете сделать это следующим образом:

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

Чтобы назначить его в свой «контейнер», я думаю, вам нужно это:

medoidContainer(:,i,:) = a;
...