r - 有没有办法将 3d 数组的 2d 矩阵乘以 R 中的标量?
问题描述
我有一个 2x2x10 的单位矩阵数组,用
arr = array(diag(2), dim=c(2,2,10))
我希望将该数组中的每个 2x2 矩阵乘以一个标量c(1:10)
z = arr[,,1:10] * c(1:10)
但是,我得到了意想不到的结果。z
如下所示的前三个 2x2 矩阵
, , 1
[,1] [,2]
[1,] 1 0
[2,] 0 4
, , 2
[,1] [,2]
[1,] 5 0
[2,] 0 8
, , 3
[,1] [,2]
[1,] 9 0
[2,] 0 2
我错过了什么吗?
解决方案
我们需要rep
licate 使长度相同
arr[,,1:10] * rep(1:10, each = length(arr[,, 1]))
否则 1 将乘以arr[, , 1]
2 的第一个元素与第二个元素,arr[,, 1]
并且由于回收较短向量的元素被回收,length
直到arr[, , 1:10]
推荐阅读
- javascript - Javascript为什么我没有得到名字已经存在的错误
- flask - 烧瓶应用程序正在 docker 上运行,但浏览器显示该网站无法访问
- python - 如何使用openpyxl计算excel数据
- string - Matlab - 通过将鼠标悬停在字符串上来显示列表框中长字符串的后沿
- python - 在 Django 中翻译人性化文本
- javascript - 我可以在没有画布的情况下使用 html JavaScript 制作游戏吗?
- excel - 使用 Excel VBA 进行范围到 HTML 转换时 Outlook 中的文本换行
- docker - 容器编排和一些 docker 功能
- proof - 关于乘法的基本陈述的证明函数
- android - 如何在 Android 中从 4 面更改视图的大小?