试图将函数应用于倒置矩阵和向量

时间:2012-02-01 05:41:48

标签: r

更新以获得更多尝试清晰度: 我确实调查了我的书和很多网站,我确信我根本没有搜索正确的关键词。

我创建了一个函数,它将矩阵乘以向量(全矩阵乘法),您将在代码中看到它。到目前为止,这很好,工作。我输入我的函数及其参数:

m<- matrix(1:9, nrow= 3, ncol=3)
f <- function(x,y,z) {(as.vector(y)%*%x%*%as.vector(y))*z}
f(m,rep(1,3),2)

这输出:         [1]     [1,] 90

x和y保持不变但z会有所不同。

所以我想用一个向量来获得多个输出。

z<- as.vector(1,2,3)

我已经尝试了这样的apply函数:

apply (c(rep(m,3),rep(1,3),rep(2,3)),1,f)

但这会产生错误。

错误:“应用((rep(m,3),”

中的意外',')

所以我的问题是如何进行矩阵乘法,然后将该输出乘以矢量中的每个元素进行绘图?

此外,我意识到一个答案是简单地创建一个首先执行矩阵乘法的函数,然后再创建一个将该结果乘以标量的函数,但我们可以假设它不能作为解决方案。

提前感谢您提供任何帮助

1 个答案:

答案 0 :(得分:0)

你的函数需要3个参数但是当你把它放在应用中时你只需把它作为f。如果您在函数中只有一个参数,或者它们被预设为特定值但您的函数没有预设y和z,那么(仅使用f)将起作用。

这里的snipet也不是什么。您需要将其存储为矢量,列表等

(rep(m,3),rep(1,3),rep(2,3))

所以你需要

c(rep(m,3),rep(1,3),rep(2,3))

list(rep(m,3),rep(1,3),rep(2,3))

我真的不知道你想要完成什么,所以给我们一个例子来说明你期望的结果可能会有所帮助。