큰 m * n 희박한 행렬 Y가 있습니다. 각 행의 평균이 0이되도록 Y의 각 행을 정규화하고 싶습니다.Matlab에서 희소 행렬을 제로 평균으로 행 정규화
나는 이것을 처음 시도했다. 그러나 각 행의 평균도 0 항목에서 뺍니다. 이는 내가 원하는 것이 아닙니다.
Ynorm = bsxfun(@minus, Y, Ymean);
그런 다음 시도해 보았습니다.
[m, n] = size(Y);
nonZeroNum = nnz(Y);
Ynorm = spalloc(m,n,nonZeroNum);
for i = 1:m
Ynorm(i, :) = spfun(@(x)(x - Ymean(i)), Y(i, :));
end
그러나이 벡터화되지 않은 솔루션은 너무 느립니다.
나는 또한 bsxfun과 spfun을 결합하려고 생각했지만 작성하지 않았다.
누구에게 벡터화 된 솔루션이 있습니까?
[I, j.a = 찾기 (A); [i, j, a] = find (A) 여야합니다. 내가 맞습니까? – Eugenio