TSL语言基础 > 数学与统计教程 > TSL矩阵操作

矩阵的运算    

  •  A := 2;  Brr := Arr *A;
      将Arr的各个元素都乘以A;
     Brr := A*Arr;
       将Arr的各个元素都乘以A;
     Brr := Arr*Arr;
      Arr 各个元素对应相乘;
     multiplier :=(1->8);  Brr := Arr *multiplier;
     Brr := [htm]multiplier*Arr;
      将Arr的各行元素分别乘以multiplier的各个元素,两者结果相同。
      注意:一维数组multiplier的长度与二维数组Arr的行数相同。
     Brr :=`Arr;
      将Arr转置赋值给Brr;
     Brr := pinv(Arr);  //求Arr的伪逆  Brr := !Arr;
      !运算符求Arr的逆矩阵,将结果赋值个Brr;当Arr的行列不等,或者Arr
    为奇异矩阵时求其伪逆矩;
     Brr := Brr :* Arr;
      将Brr 和Arr按照矩阵乘法规则相乘,将结果赋值给Brr;
      矩阵运算规则的运算符号还有:
      :\ 矩阵的左除
      :/ 矩阵的右除
      :^ 矩阵的乘方
      注意:矩阵运算时的行列数必须满足矩阵运算法则。
      Union可以把两个矩阵的行连接起来,例如:
     A:=array((1,2,3),(2,3,4));  B:=array((11,22,33),(22,33,44));
     A:=A union B;
      A的结果为array((1,2,3),(2,3,4),(11,22,33),(22,33,44));
      以上也可以写成A&=B.
      事实上,union对一维数组同样有效,例如array(1,2) union array(3,4)的结果为array(1,2,3,4).
      union2与union类似,但是union2去除了重复部部分。
      |可以把两个矩阵的列连接起来,例如:
     A:=array((1,2,3),(2,3,4));  B:=array((11,22,33),(22,33,44));
     A:=A | B;
      A的结果为array((1,2,3,11,22,33),(2,3,4,22,33,44));
      以上也可以写成A|=B。
      事实上,|对一维数组同样有效,例如array(1,2) | array(3,4)的结果为array((1,3),(2,4))