TSL语言基础 > 矩阵计算 > FMArray > 用法介绍

集合运算    

  • Fmarray支持集合运算
    Union2,intersect,outersect,minus都支持
    集合运算支持和array的混合运算
    计算的结果的数据类型和左值相同
    即 fmarray union2 array -> fmarray
          array union2 fmarray -> array
    如果合并操作的结果类型为fmarray,fmarray的单元格类型是能包容左右操作数单元格的类型
    表现如下:
    整数矩阵和浮点矩阵的操作是浮点矩阵
    整数矩阵和64位整型矩阵的操作是64位整型矩阵
    64位整型矩阵和浮点矩阵的操作是浮点矩阵

    注:多维矩阵做集合运算时,维度必须一致,且除第一维度的长度可以不相同外,其余维度的长度必须相同。

    范例01:矩阵集合并操(union2:将两个集合中的元素的合集去重后的结果)
    f1:=fmarray[1,2,0,4,5];
      f2:=fmarray[1,0,7];
    t:= f1 union2 f2;

    t的值为:fmarray[1,2,0,4,5,7]; 有去重效果

    范例02:Fmarray 与 array做并操作
    f1:=fmarray[1,2,0,4,5];
      f2:=array(1,0,7.2);
    t1:=f1 union2 f2;
    t2:=f2 unon2 f1;

    t1的结果为:fmarray[1.0,2.0,0.0,4.0,5.0,7.2],可以看出矩阵中单元格类型为浮点数。
    t2的结果为:array(1,0,7.2,1,2,0,4,5)

    范例03:二维矩阵的并操作
    f1:=fmarray[[1,2],[0,4],[5,6]];
      f2:=array((1,2),(3,3));
      return f1 union2 f2;

    返回结果如下:(Fmarray矩阵)

    还支持多矩阵合并,如 f1 union2 f2 union2 f3等操作。
    其它集运算用法同union2。更多功能介绍请查看该关键字的帮助说明。