首页 > 解决方案 > 在 R 中计算多项式核矩阵

问题描述

我正在尝试在 R 中计算多项式核矩阵。我有一个如下所示的 tribble:

library(tidyverse)
tribble(
  ~x, ~y,
  -0.5, 1,
  -1, -1.5,
  -1.5, 1.5,
  1.5, -0.5,
  0.5, -0.5,
  ) %>% as.matrix()

我已经将它转换为一个矩阵,但我想计算一个定义为 2 次的多项式核矩阵(gram 矩阵) 多项式函数

我想要矩阵如下:

结果

我知道 R usingouter()和 base implementation 中的向量回收概念,但发现在 R 中对其进行编码非常具有挑战性。

标签: rmatrix

解决方案


我们可以用crossprod

crossprod(t(df))^2

-输出

#        [,1]    [,2]    [,3]   [,4]   [,5]
#[1,] 1.5625  1.0000  5.0625 1.5625 0.5625
#[2,] 1.0000 10.5625  0.5625 0.5625 0.0625
#[3,] 5.0625  0.5625 20.2500 9.0000 2.2500
#[4,] 1.5625  0.5625  9.0000 6.2500 1.0000
#[5,] 0.5625  0.0625  2.2500 1.0000 0.2500

推荐阅读