r - R:随机切换矩阵中非对角线的符号
问题描述
假设我生成以下矩阵
Sigma <- diag(x = 1, 100, 100)
Sigma[Sigma == 0] <- 0.25
所以对角线上有“1”,非对角线上有“0.25”。如何随机更改对角线上的一些符号以具有 -0.25 和 0.25 ?
当然,可以循环遍历元素,但我认为这不是一个优雅的解决方案
解决方案
一种方法是为矩阵的长度随机生成 1 和 -1,将其乘以矩阵并将对角线变为 1。
Sigma <- Sigma * sample(c(1, -1), length(Sigma), replace = TRUE)
diag(Sigma) <- 1
Sigma
推荐阅读
- python-3.x - 使用 spyder IDE 在 python 3.6 中的单个 if 语句中测试多个条件的语法
- kotlin - 在 Spring Rest Docs 中添加基本 url 的路径?
- python - 当某些 Windows 有焦点时,Python 不会检测到击键
- html - 在 Electron 中单击按钮时运行脚本
- ssh - 使用 sshfs Visual Studio 代码连接到 ssh
- python - Discord.py v3(重写)尝试将用户输入与预设元组列表匹配
- python - 在python烧瓶中将结果转换为json
- parquet - 使用从 parquet 文件创建的 dask 数据帧时使用过多的内存
- react-native - 安装 React-Native-firebase 后无法运行项目
- google-cloud-platform - 将谷歌数据工作室连接到谷歌云 sql