范例01:一个参数:返回二维数组的项为真的对应的下标
t:=array((0,2,3),(2,3,nil));
return Mfind(t);
返回:
范例02:一个参数:返回一维数组的项为真的对应的下标
t:=array(0,1,2,3,nil,4);
return Mfind(t);

返回:
范例03:多个参数:指定条件的值的下标、带值输出,替换等结果的展示
A:=Array((1,2,3,4,5),(2,3,4,5));
B:=Mfind(A,Mcell>3);
C:=Mfind(A,Mcell>3,True);
D:=Mfind(A,Mcell>3,false,3);
B与D的结果为: C的结果为(列名为2的为该项的值):
执行完D:=Mfind(A,Mcell>3,false,3);后,数组A的结果为:
PS:C和B的结果的差异就是C多出一列为符合条件的值,而0列为行标,1列为列标。
D的结果与B一致,而数组A的结果中>3的值被替换成3。 1.6
单参数例子:
范例04:找出数组中指定列符合指定条件的子集
假定有随机数组b如b:=rand(1000,10);
select的代码c:=select * from b where [0]>0.5 end;可以获得列0大于0.5的子集
可以很便捷地使用矩阵模式代码替代:c:=b[mFind(b[:,0].>0.5)];
其中b[:,0].>0.5得到一个一维的真假数组,大于0.5的行为1,否则为0
mFind(b[:,0].>0.5)获得为1的行标,用于子矩阵b[mFind(b[:,0].>0.5)]则获得了符合条件的B的子集。