Mathematica减去具有缺失值的矩阵

use*_*325 5 wolfram-mathematica matrix missing-data

在Mathematica中,我有一个缺少值的矩阵'a',我有一个矩阵'b',其尺寸与'a'相同.我想计算ab但是如果缺少值,我用'NA'表示,我希望它保持为'NA'.你能帮帮我吗?请注意,'a'的尺寸为1百万X300.

谢谢!

Hig*_*ark 7

一种方法是对结果使用替换规则,如下所示;

In[1]  {1, na, 3, na, 5} - {1, 2, 3, 4, 5}
Out[1] {0, -2 + na, 0, -4 + na, 0}

In[2]  {1, na, 3, na, 5} - {1, 2, 3, 4, 5}/. x_ + na -> na
Out[2] {0, na, 0, na, 0}
Run Code Online (Sandbox Code Playgroud)

另一种方法是定义一个UpValuefor na,使得涉及它的加法(和减法)总是会导致na; 像这样:

In[3] na /: Plus[___, na, ___] := na
Run Code Online (Sandbox Code Playgroud)

UpValues 如果你要多次进行操作,一次性的更换规则将是你要走的路.