我有一个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
的列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
在的末尾添加a,则描述的是矩阵乘法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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句