如何在R中生成随机实对称矩阵

时间:2018-01-17 20:38:37

标签: r matrix

我知道A&A; A将给出对称的正定矩阵。但是如何在R中生成对称的随机矩阵,但不一定是正定的?

1 个答案:

答案 0 :(得分:4)

细节当然取决于您希望矩阵元素具有什么样的分布,但是一旦您确定了这一点,您就可以适应以下内容:

f <- function(n) {
    m <- matrix(sample(1:20, n^2, replace=TRUE), nrow=n)
    m[lower.tri(m)] <- t(m)[lower.tri(m)]
    m
}

## Try it out
f(2)
#      [,1] [,2]
# [1,]    9   13
# [2,]   13   15
f(3)
#      [,1] [,2] [,3]
# [1,]    1    8    3
# [2,]    8   13    5
# [3,]    3    5   14

为了便于使用,您可以在函数中包含这样的代码,如下所示:

modelBuilder.Entity<PlayerCharacter>()
    .HasIndex("Name", "RealmId")
    .IsUnique()
    .HasFilter("Discriminator = 'PlayerCharacter'"); // <--