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

矩阵初始化    

  •   矩阵的初始化支持如下:Zeros初始化0矩阵,ones初始化1矩阵,eye初始化单位矩阵,rand初始化随机矩阵,Nils初始化空矩阵。除了eye以外,其他的几个初始化函数在带一个参数的时候为初始化一个一维数组,带两个参数则初始化一个二维数组(矩阵)。
      Zeros(10)
      返回的是一个10个元素的0数组。  
      Zeros(10,10)
      返回的是一个10*10的全零二维数组。
      Eye(10)和Eye(10,10)的结果一样,都是返回一个10*10的单位矩阵。
      初始化也可以初始化字符串下标的数组(数据表类型)  
      Zeros(10,array("F1","F2"))
      返回的是一个10行两列,列名为F1和F2的全0数组。  
      Zeros(array("L1","L2"),array("F1","F2"))
      返回一个以L1和L2为行标,F1,F2为列名的全零矩阵。  
      multiplier:=0->8;
      产生一个9个元素的一维数组,个元素为0,1,2……8;  
      multiplier:=array(0,0.05)->8;
      产生一个从0开始,步长为0.05,到8的一维数组。
      有时,我们需要知道矩阵的大小,在我们平台中可以利用mSize,mRows,mCols可以很方便地获得矩阵的大小以及行列等相关信息。A为一个三行两列的随机数组:  
      A:=Rand(3,array("F1","F2"));   B:=MSize(A,0);//B的内容为array(3,2)表示三行两列
      C:=MSize(A,1);//C的内容为array((0,1,2),("F1","F2"))
      也就是说MSize可以获得行列数,也可以获得行列下标的具体值。
      如果只要获得行数或者列数或者行下标、列下标可以利用mRows或mCols例如:  
      A:=Rand(3,array("F1","F2"));   B:=MRows(A,0);//B的结果为3
      C:=MCols(A,0);//C的结果为2
      D:=MRows(A,1);//D的结果为array(0,1,2)
      E:=MCols(A,1);//E的结果为Array("F1","F2")
      与MSize类似的,MRows和MCols既可以返回行数列数,也可以返回行下标或者列下标.