0

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

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

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

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

4

1 回答 1

1

matrix2[,1:fieldB]是矩阵2的子集。它包括 matrix2 的所有行,以及列表 1:fieldB 中包含的那些列。据推测,fieldB 标识了 matrix1 中的列数(转置时变为行),因此 * 有效 [ matrix1'rows 必须等于 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` 的矩阵乘积。

于 2013-01-28T21:48:34.600 回答