2015-10-06 23 views
1

Учитывая матрицу n × 3 из n векторов строки вида (x, y, z) и матрицы (nx 1) соответствующих величин этих векторов, как я могу сгенерировать матрица (nx 3) соответствующих n векторов-столбцов без петля над n.Нормализация матрицы векторов заданных величин

Я попытался проиллюстрировать это ниже:

Дано:

[x1 y2 z1; x2 y2 z2; ... xn yn zn]

и

[norm(x1 y1 z1) norm(x2 y2 z2) .... norm(xn yn zn)]

как я могу генерировать матрицу (пх 3) соответствующих векторам столбцов.

ответ

2

Предполагая matrix1 в качестве nx3 входного массива в, если у вас уже есть, что величина вектор matrix2, вы можете использовать bsxfun как так -

bsxfun(@rdivide,matrix1,matrix2(:)) 

Если вам необходимо рассчитать величину вектор тоже, вы можете делать все что за один раз, так же -

bsxfun(@rdivide,matrix1,sqrt(sum(matrix1.^2,2))) 
+0

приятно спасибо! Я получил значительную часть, но не знал об этой магической функции bsx! –

+1

Волшебный действительно :-) –

Смежные вопросы