以下均假设A是一个矩阵。
数组取数是使用[]运算符,FMArray矩阵也如此。
例如A[2,3]表示行下标为2列下标为3的值。相对于其它方式,有降维效果。
N:M的方式可以取矩阵的下标连续的子集。
例如A[2:5]表示取A矩阵行下标为2到5之间的子矩阵。
A[2:5][0:1]表示取A矩阵行下标为2到5之间,列下标为0到1之间的子矩阵。
多维矩阵依此类推。
当该维度需要取所有下标时,可以用:来表示全部,比如A[:][0:1]表示取所有行,而列为0到1之间的子矩阵。
Array(N,M,…)的方式可以取矩阵任意下标集合的子集。
例如A[array(2,5,6)]表示取A矩阵中行下标为2、5、6的三行组成的矩阵。
A[array(2,5,6), array(0,2)] 表示取A矩阵中行下标为2、5、6,列下标为0和2的新矩阵。
以上几种方式可以混搭灵活使用,能满足各类子矩阵提取的需求。
例如:fm:=mrand(3,4,5);
fm[:,0,:]为固定维度1下标为0的二维矩阵
fm[:,array(2,3),:] 用数组做下标取多个下标
fm[:,2:3,:] 用fromindex:toindex模式取多个下标