我使用matlab,我有两个矩阵:
G =
1 1 1 1
1 1 1 1
和第二:
m =
4 4 4 4
0 0 0 0
我想要这个结果:
x =
1/4 1/4 1/4 1/4
0 0 0 0
到目前为止我做的是:
x = G ./ m
但它返回:
x =
1/4 1/4 1/4 1/4
NaN NaN NaN NaN
如何通过设置默认值" 0"来避免将div除零。如果有除零值?
答案 0 :(得分:5)
您可以将NaNs转换回零:
x = G ./ m;
x(isnan(x))=0; % thanks to comment by @nkjt
或者,如果您还要保存矩阵m
中的NaN,则可以执行以下操作:
x(m==0)=0;
答案 1 :(得分:2)
一种选择是预先分配x
,然后仅对m
不为零的部分使用除法。
x = zeros(size(m)); % output is same size as m
n = m~=0; % find indexes
x(n)=G(n)./m(n);