计算高维矩阵的单位向量

时间:2015-11-12 09:46:12

标签: matlab matrix vectorization

我想计算高维矩阵的单位向量。

eig_vectors=(eig_vectors/sqrt(eig_vectors'*eig_vectors));


K>> size(eig_vectors)

ans =

         400      153600

由于eig_vectors'*eig_vectors而导致内存问题。什么是实现它的快速方法?

1 个答案:

答案 0 :(得分:0)

您可以通过直接求和矩阵元素的平方来计算范数,从而避免大矩阵乘法。

eig_vectors = bsxfun(@rdivide,eig_vectors,sqrt(sum(eig_vectors.^2,2)))

如果这仍然是您的内存问题,您可以随时使用循环

   for iVector = 1:size(eig_vectors,1)
        eig_vectors(iVector,:) = eig_vectors(iVector,:)./norm(eig_vectors(iVector,:));
   end