r - 使用 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。我究竟做错了什么?
解决方案
您可以创建一个 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
推荐阅读
- java - Spring Security - 授权规则中的通配符/匹配器
- flutter - Flutter TabBar 高度图标
- python - 从 py 文档中读取的 itertools.count 函数
- python - 多处理时函数与嵌套函数无休止地运行
- java - 在命令行 Spring Boot 中传递多个参数
- jenkins - Jenkins 管道运行阶段失败
- reactjs - 如何使用 Next.js^9.3 将 cookie 信息从 SignupPage 填充到导航栏组件?
- python - Pandas groupby 使用基于两列的聚合
- swift - 为什么要扩展类而不是遵循协议?
- mysql - Laravel MySQL 连接表