精度行列 sigmaT を共分散行列に変換しようとしています。私は2つのアプローチを試しました:
covMat = zeros(size(sigmaT));
for i=1:t
covMat(:, :, i) = eye(D)/sigmaT(:,:,i);
end
と
covMat = bsxfun(@rdivide, eye(D), sigmaT);
sigmaT の一部の要素はゼロであるため、ゼロによる除算が発生します。最初のループベースのソリューションでは、0 による除算が発生する要素を 0 として保持し、2 番目のアプローチでは要素を NaN に設定します。
私の質問は次のとおりです:なぜそれらは異なる動作をするのですか?2番目の1行のアプローチを変更してループベースのアプローチとして動作させるにはどうすればよいですか? 後者のソリューションは、大規模な行列では大幅に高速になるはずです。