知识库 > 矩阵专题

矩阵的运算    


  • A := 2;
    Brr := Arr *A;

    将Arr的各个元素都乘以A;

    Brr := A*Arr;

    将Arr的各个元素都乘以A;

    Brr := Arr*Arr;

    Arr 各个元素对应相乘;

    multiplier := (1->8);
    Brr := Arr *multiplier;
    Brr := 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))