Mfind(Matrix:Array):Array;
Mfind在一个参数的时候,则为查找为真的下标,如果参数为一个一维数组,则其返回的结果集也为一个一维数组
例如:找出数组中指定列符合指定条件的子集
假定有随机数组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:=rand(1000,10);
c:=b[mFind(b[:,0].>0.5)];
return c;
c的结果为第0列数值大于0.5的那些行集合。
其中,理解运行步骤:
第一步:b[:,0].>0.5得到一个一维的真假数组,即值大于0.5的行为真,否则为假。
第二步:mFind(b[:,0].>0.5)获得元素值为真的行标集合,
第三步:b[mFind(b[:,0].>0.5)]根据指定行标集合获取子矩阵,即获得了符合条件的b的子集。