//数据样本
f1:=fmarray[1,2,0,4,5]; //一维
f2:=fmarray[[1.1,-2.0],[0.0,8.5]];//2*2
//MFind(t)返回单元格中为真的项的下标,二维数组,一行存放一个值的下标
mf1:= MFind(f1); //返回array((0),(1),(3),(4))
mf2:= MFind(f2); //返回array((0,0),(0,1),(1,1))
//MFind(t,exp)返回单元格中符合条件的项的下标
mf3:=MFind(f1,mcell>=2);//返回array((1),(3),(4))
mf4:=MFind(f2,mcell>=2);//array((1,1))
//MFind(t,exp,RetV)返回符合条件的下标和值,二维数组,最后一列是单元值,前面的是下标
mf5:=MFind(f1,mcell>=2,1);//array((1,2),(3,4),(4,5))
mf6:=MFind(f2,mcell>=2,1);//array((1,1,8.5))
//MFind(t,exp,RetV,v); 替换符合条件的值,并返回,返回结果同MFind(t,exp,RetV)
mf7:=MFind(f1,mcell>=2,1,100);//将值大于等于2的单元格赋值为100
mf8:=MFind(f2,mcell>=2,0,100.);// 将值大于等于2的单元格赋值为100.
//此时f1,f2的结果分别为:
//多维数组同样也支持,用法一样,此处只挑一种用法进行举例
f3:=fmarray[[[1,1],[2,0]],[[1,2],[0,-3]],[[3,8],[-8,10]]];
mf:= MFind(f3,Mcell<0,1,0);//将多维矩阵中小于0的值用0替代,并返回符合条件的下标与原值
//此时,f3的值为fmarray[[[1,1],[2,0]],[[1,2],[0,0]],[[3,8],[0,10]]]
return mf;