r - R:如何将值矩阵转换为函数
问题描述
我有一个n x m
值矩阵。在这个玩具示例中,假设n = m = 3
.
mymat <- matrix(c(16, -15, -2, 15, 13, 16, 0, 0, 0.42), nrow = 3, ncol = 3)
> mymat
[,1] [,2] [,3]
[1,] 16 15 0.00
[2,] -15 13 0.00
[3,] -2 16 0.42
我的目标是创建以下函数,其中输入x
是长度m - 1
向量。目标是返回n
值,其中我将 的第一m-1
列乘以 input 中mymat
的m-1
条目x
。然后我将在 的m
第 th 列中添加值mymat
。功能如下:
myfun <- function(x){
vec1 <- 16 * x[1] + 15* x[2]
vec2 <- -15 * x[1] + 13 * x[2]
vec3 <- -2 * x[1] + 16 * x[2] + 0.42
return(c(vec1, vec2, vec3))
}
但是,如果mymat
' 的维度增长,则构建此函数非常繁琐。有没有更有效的方法来编码?
解决方案
你描述的是矩阵乘法,如果你1
在x
.
这是你的功能:
foo = function(x, mat) {
c(mat %*% c(x, 1))
}
示范:
all(myfun(1:2) == foo(1:2, mymat))
# [1] TRUE
all(myfun(3:4) == foo(3:4, mymat))
# [1] TRUE
推荐阅读
- python - 在 diff 上过滤 DataFrame,其中布尔重复
- azure-spatial-anchors - 什么是 FindObjectOfType
参考? - css - 扩展 Airflow Web UI 并添加静态 HTML 页面和 CSS
- java - 使用相机选项打开图像选择器
- android - 如何使 GridLayout 相应地更改其子视图大小?
- docker - Docker COPY 没有这样的文件或目录
- javascript - Chart.JS 多个插件不运行
- javascript - Google Charts - GeoChart - USA Counties for West Virginia
- lambda - 如何在 apollo-server-lambda 中处理 cookie
- vuejs2 - 如何使用入门模板修复新创建的 nuxt.js 应用程序的相关模块错误?