避免在MATLAB中的矩阵之间除零

del*_*nce 3 matlab matrix division

我正在使用matlab,我有两个矩阵:

G =

 1     1     1     1
 1     1     1     1
Run Code Online (Sandbox Code Playgroud)

和第二个:

m =

 4     4     4     4
 0     0     0     0
Run Code Online (Sandbox Code Playgroud)

我想要这个结果:

x =

 1/4     1/4     1/4     1/4
  0       0       0       0
Run Code Online (Sandbox Code Playgroud)

到目前为止我做的是:

x = G ./ m
Run Code Online (Sandbox Code Playgroud)

但它返回:

x =

 1/4     1/4     1/4     1/4
 NaN     NaN     NaN     NaN
Run Code Online (Sandbox Code Playgroud)

如果除以零,如何通过设置默认值"0"来避免将div除以零?

Adi*_*iel 5

您可以将NaNs转换回零:

x = G ./ m;
x(isnan(x))=0;      % thanks to comment by @nkjt
Run Code Online (Sandbox Code Playgroud)

或者,如果您还要在矩阵m中保存要保存的NaN,则可以执行以下操作:

x(m==0)=0;
Run Code Online (Sandbox Code Playgroud)