我有一个单行/多列矩阵,乘以一个方阵。 SAS给了我单行结果。到目前为止,从我记得大学数学,并问人们,好吧。
但SAS的这一行就是这一行:
fieldA = matrix1` * matrix2 [,1:fieldB]
虽然我理解“fieldA = matrix1` * matrix2”,但我不知道[,1:fieldB]是做什么的,而且我似乎无法找到解释它的任何文档。
答案 0 :(得分:1)
matrix2[,1:fieldB]
是matrix2的子集。它包括matrix2的所有行,并且只包含列表1中包含的列:fieldB。假设fieldB标识了matrix1中的列数(在转置时成为行),因此* works [matrix1'
行必须等于matrix2列才能使操作合法]。
例如,想象matrix1是以下矩阵:
[1,3,5]
和matrix2是以下矩阵:
[1,2,3,4,
4,5,6,7,
8,9,10,11,
13,14,15,16]
现在,
matrix1`*matrix2
是非法的 - matrix1`有3行(转置),matrix2有4列。所以:
matrix1`*matrix2[,1:3]
现在是合法的,通过matrix2的前3列产生matrix1`的矩阵乘积。