我想計算高維矩陣的單位向量。計算高維矩陣的單位向量
eig_vectors=(eig_vectors/sqrt(eig_vectors'*eig_vectors));
K>> size(eig_vectors)
ans =
400 153600
由於eig_vectors'*eig_vectors
,它會發生內存問題。什麼是實現它的快速方法?
我想計算高維矩陣的單位向量。計算高維矩陣的單位向量
eig_vectors=(eig_vectors/sqrt(eig_vectors'*eig_vectors));
K>> size(eig_vectors)
ans =
400 153600
由於eig_vectors'*eig_vectors
,它會發生內存問題。什麼是實現它的快速方法?
您可以通過直接求和矩陣元素的平方來計算範數,從而避免了大的矩陣乘法。
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
你不是應該找理清內存問題,請問如何解決它,而不是跳上使其更快? – Divakar
@Divakar感謝您的回覆!記憶問題是第一優先。 –
因此,請提出具體的問題。目前來看,它太廣泛了。 – Divakar