Matrix SPSS:从矩阵中选择列或行的子集

Matrix SPSS:从矩阵中选择列或行的子集,matrix,spss,Matrix,Spss,如何从SPSS中的矩阵中选择列或行的子集? 给出下面的例子,我想计算一个包含X的前两列的矩阵X2 MATRIX. COMPUTE X = {1, 2, 2; 0, -1, 1; 1, 1, -2}. * Compute new matrix X2 that contains the first two columns of X MAGIC CODE ;) END MATRIX. SPSS中矩阵子集运算的语法是什么?您可以对矩阵进

如何从SPSS中的矩阵中选择列或行的子集?

给出下面的例子,我想计算一个包含X的前两列的矩阵X2

MATRIX.

   COMPUTE 
   X = {1, 2, 2;
        0, -1, 1;
        1, 1, -2}.

   * Compute new matrix X2 that contains the first two columns of X

   MAGIC CODE ;)

END MATRIX.

SPSS中矩阵子集运算的语法是什么?

您可以对矩阵进行子集运算,因此它将是简单的
COMPUTE XSub=X(:,1:2)。
下面的完整示例

MATRIX.
COMPUTE X = {1, 2, 3;  4, 5, 6;   7, 8, 9}.
COMPUTE Y=MAKE(NROW(X),2,0).
LOOP i=1 to NROW(Y).
  LOOP j=1 to NCOL(Y).
    COMPUTE Y(i,j)=X(i,j).
  END LOOP.
END LOOP.

PRINT X.
PRINT Y.
END MATRIX.
MATRIX.
COMPUTE X = {1, 2, 2;
             0, -1, 1;
             1, 1, -2}.
COMPUTE XSub = X(:,1:2).
PRINT XSub.
END MATRIX.

对于评论中的附加问题,
1:n
基本上被SPSS理解为
1 2 3….的行向量。。。。n
。但是,您可以创建自己的向量来子集矩阵,例如
{1,3}
{2,2}
{3,1}
或其他。最后一个示例将首先返回子集合矩阵中的第三列,第二列返回第一列。示例如下:

MATRIX.
COMPUTE X = {1, 2, 2;
             0, -1, 1;
             1, 1, -2}.
COMPUTE XSub = X(:,{3,1}).
PRINT XSub.
END MATRIX.
打印出来的

Run MATRIX procedure: 

XSUB 
  2  1 
  1  0 
 -2  1 

------ END MATRIX -----

你可以把矩阵子集,看看我的答案。不需要循环。我知道会有比我提供的循环解决方案更简单的方法!我已经好几年没有使用
MATRIX
来记住它的所有功能了。谢谢。如果您不介意的话,还有一个附加问题:)如何选择非相邻列,例如1和3?示例添加了@MarkHeckmann。同样的想法也适用于选择行。