level 9
现在有一个list,里面是一些0和未定义函数表达式。我想把非零元素都替换成1,但是对于表达式的匹配总是失败,所以想请教一下该怎么写。以下是示例代码:
{u[0, 1]*v[1, 1], c[1, 2], 0, 0, 0} /. {x_ /; x != 0 -> 1}
这行代码未能达到预期目的,我用MatchQ试了一下,发现类似于u[1,0]这样的式子既不是0也不是非零,是不是说mma也无法决定u[1,0]是什么(因为函数u未定义)?
2019年04月24日 06点04分
1
吧务
level 7
Replace[{u[0,1]*v[1,1],c[1,2],0,0,0},x_/;If[x!=0,True,False,True]->1,{1}]
2019年04月25日 08点04分
7
吧务
level 15
用Except也是可以的。
Replace[{u[0, 1]*v[1, 1], c[1, 2], 0, 0, 0}, Except[0] -> 1, {1}]
2019年05月04日 06点05分
9