2016-11-01 4 views
0

私はこの質問を参照してください:How do I divide matrix elements by column sums in MATLAB?MATLABで行列要素を*非ゼロ*列合計で割り算するにはどうすればよいですか?

さらに、列合計(sum(A))がゼロでない場合にのみ除算を行います。
ループメソッドを除いて、そこに列挙されているメソッドのどれも動作しますが、これは私のマトリックスサイズが非常に遅いためですか?

答えて

1

必要なのは、中間段階でsum(A)からゼロ要素を削除するには次のとおりです。

col_sum = sum(A); 
col_sum(col_sum == 0) = 1; % no zeros 

今、あなたは、例えば、the linked postに任意の方法を使用することができますbsxfun使用:ビューの数値的観点から

B = bsxfun(@rdivide, A, col_sum);  

を、正確ゼロAは、浮動小数点型である場合ている要素のみを除去する、非常に良い方法ではありません。代わりに、の要素がすべて0に近いを排除したい場合があります。

関連する問題