[英]How do I divide matrix elements by *non-zero* column sums in MATLAB?
我看到一個問題: 如何在MATLAB中按列總和划分矩陣元素?
但是此外,我只想在列和( sum(A)
)為非零的情況下進行除法。
除了循環方法(因為矩陣尺寸非常慢)之外,列出的任何方法都可以使用嗎?
您所需要做的就是通過一個中間步驟從sum(A)
刪除零個元素:
col_sum = sum(A);
col_sum( col_sum == 0 ) = 1; % no zeros
現在,您可以在鏈接的帖子中使用任何方法,例如,使用bsxfun
:
B = bsxfun(@rdivide, A, col_sum);
從數字的角度來看,當A
是浮點類型時,僅消除恰好為零的元素並不是一種很好的做法。 相反,您可能要消除所有接近零的元素:
col_sum( abs(col_sum) < 1e-10 ) = 1;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.