我有一个单行/多列矩阵,乘以一个方阵。SAS 给了我一个单行结果。到目前为止,从我记得的大学数学和问别人的情况来看,好吧。
但是 SAS 的这一行是这样的:
fieldA = matrix1`*matrix2[,1:fieldB]
虽然我理解“fieldA = matrix1`*matrix2”,但我不知道 [,1:fieldB] 是做什么的,而且我似乎找不到任何解释它的文档。
我有一个单行/多列矩阵,乘以一个方阵。SAS 给了我一个单行结果。到目前为止,从我记得的大学数学和问别人的情况来看,好吧。
但是 SAS 的这一行是这样的:
fieldA = matrix1`*matrix2[,1:fieldB]
虽然我理解“fieldA = matrix1`*matrix2”,但我不知道 [,1:fieldB] 是做什么的,而且我似乎找不到任何解释它的文档。
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` 的矩阵乘积。