0

我需要在 IML 中创建一个包含多列的矩阵,并仅对某些列进行一些计算(一列中的值不得更改)。例如,我需要将一列乘以另一列元素。这个的语法是什么?

4

1 回答 1

1

您可以通过在等号左侧引用要更改的列号来执行此操作。

例如:

proc iml;
  x = {1 2,
       3 0, 
       5 4};
  y = {1,
       2,
       3};

  x[,1] = x[,1] # y;
  print x;
quit;

正如 Rick 在评论中指出的那样,您还可以将 x 的第 1 列与第 2 列相乘:

proc iml;
  x = {1 2,
       3 0, 
       5 4};

  x[,1] = x[,1] # x[,2];
  print x;
quit;

您可能还想查看下标归约运算符,以及 Rick对行和列操作的速记符号的建议,以获取有关相关概念的更多信息。

于 2015-11-12T18:09:04.343 回答