Как вычислить евклидову длину матрицы без циклов?

Кажется, ответ на этот вопрос должен быть простым, но я в тупике. У меня есть матрица матрицы Nx3, где 1-й, 2-й и 3-й столбцы - это координаты XY и Z n-го элемента. Я хочу рассчитать расстояние от исходной точки до объекта. В не векторизованной форме это легко.

расстояние = норма ([xyz]);

или

расстояние = sqrt (x ^ 2 + y ^ 2 + z ^ 2);

Однако в векторизованном виде все не так просто. Когда вы передаете матрицу в норму, она больше не возвращает евклидову длину.

расстояние = норма (матрица); % не работает

и

distance = sqrt (x (:, 1). * x (:, 1) + y (:, 2). * y (:, 2) + z (:, 3). * Z (:, 3)); % просто кажется беспорядочным

Есть ли лучший способ сделать это?

6
задан Miebster 2 November 2012 в 16:02
поделиться