Так как вы пытаетесь вычислить евклидово расстояние , похоже, у вас есть ошибка в том, где ваши скобки помещаются при вычислении normImageTemp
.У вас есть это:
normImageTemp = sqrt((sum((...)./256).^2));
%# ^--- Note that this parenthesis...
Но вы действительно хотите сделать это:
normImageTemp = sqrt(sum(((...)./256).^2));
%# ^--- ...should be here
Другими словами, вам нужно выполнить поэлементное возведение в квадрат, затем суммация, затем квадратный корень.То, что вы делаете сейчас, - это сначала суммирование элементов, , а затем возведение в квадрат и извлечение квадратного корня из суммирования, которые, по сути, компенсируют друг друга (или фактически эквивалентны простому получению абсолютного значения).
Кстати, вы можете использовать функцию NORM , чтобы выполнить эту операцию для вас, например:
normImageTemp = norm((images(:, i) - images(:, j))./256);