TSL语言基础 > 矩阵计算 > FMArray > 用法介绍 > 矩阵查找与遍历 > 查找与遍历举例

::与::=的应用举例    

  • 范例01:将随机矩阵中,行列标相同的单元格的值赋值为1
    //方法一:::的实现
    F1:=mrand(5,4);
    F1::mcell:=mrow=mcol?1:mcell;
    Return F1;
    //方法二:::=的实现
    F2:=mrand(5,4);
      F2::= mrow=mcol?1:mcell;
      return F2;

    F1与F2的返回结果如下:


    范例02:统计多维矩阵中第三维度中每个序列中小于0.5的数量
    //::的实现
      F1:=mrand(5,4,10); //三维
      A:=MInit(5,4,0);//记录结果
      F1::begin
        A[mrow][mcol]+=mcell<0.5;
      end
      return A;

    返回:


    范例03:::=实现数值函数的批量操作
    一般的数值函数都已实现对数组的支持,可以直接使用,比如FloatN,既可以对数值12.656进行四舍五入,也能对数组array(12.656,11.121)或fmarray[12.256,11.121]进行四舍五入。但也可能存在部分函数在设计时没考虑到数组的情景,或用户自己在封装时没有考虑数组的情景,此时,则可借助::=运算来快速实现对数组的支持。
    比如,RoundTo5函数只能.5处理一个实数,那我们想要处理矩阵中每个单元格中的数值则可通过t::= RoundTo5(mcell)来快速实现,实现如下:
    F:=fmarray[6.3,5.6,3.1,4.2,5.25];
      F::= RoundTo5(mcell);
      return F;

    返回: