SAS上的矩阵操作

时间:2013-01-28 21:26:25

标签: sas

我有一个单行/多列矩阵,乘以一个方阵。 SAS给了我单行结果。到目前为止,从我记得大学数学,并问人们,好吧。

但SAS的这一行就是这一行:

fieldA = matrix1` * matrix2 [,1:fieldB]

虽然我理解“fieldA = matrix1` * matrix2”,但我不知道[,1:fieldB]是做什么的,而且我似乎无法找到解释它的任何文档。

1 个答案:

答案 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`的矩阵乘积。