首页 > 解决方案 > 使用 R 软件创建 n x n 矩阵,主对角线为 1,公共值在其他单元格中为 0.012

问题描述

n=4 and my alpha=0.01如果然后我的矩阵 在此处输入图像描述使用 R 软件,我想创建一个看起来像这样的 n x n 矩阵

如果我能用这个工作来重现上面的矩阵,我将不胜感激

     n=5
    i=0
    alpha=0.01
    R=matrix(nrow=n,ncol=n)
    while(i<n){
      R[i+1,]=alpha
      i=i+1}
    R

但是使用上面的代码,我所有的对角线都是 0.01。我究竟做错了什么?

标签: rmatrix

解决方案


您可以创建一个 0.01 的矩阵并将对角线设置为 1:

 n <- 5
 alpha <- 0.01
 diagonal_val <- 1
 m <- matrix(alpha, n, n)
 diag(m) <- diagonal_val

更新 OP 要求详细说明创建矩阵的蛮力方法:

n <- 5
alpha <- 0.01
R <- matrix(NA, n,n)
for (i in 1:n){
  for (j in 1:n){
    if (i==j){
      R[i,j] <- 1.
    } else {
      R[i,j] <- alpha
    }
  }
}

输出

> m
     [,1] [,2] [,3] [,4] [,5]
[1,] 1.00 0.01 0.01 0.01 0.01
[2,] 0.01 1.00 0.01 0.01 0.01
[3,] 0.01 0.01 1.00 0.01 0.01
[4,] 0.01 0.01 0.01 1.00 0.01
[5,] 0.01 0.01 0.01 0.01 1.00

推荐阅读