更新以获得更多尝试清晰度: 我确实调查了我的书和很多网站,我确信我根本没有搜索正确的关键词。
我创建了一个函数,它将矩阵乘以向量(全矩阵乘法),您将在代码中看到它。到目前为止,这很好,工作。我输入我的函数及其参数:
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),”
中的意外',')所以我的问题是如何进行矩阵乘法,然后将该输出乘以矢量中的每个元素进行绘图?
此外,我意识到一个答案是简单地创建一个首先执行矩阵乘法的函数,然后再创建一个将该结果乘以标量的函数,但我们可以假设它不能作为解决方案。
提前感谢您提供任何帮助
答案 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))
我真的不知道你想要完成什么,所以给我们一个例子来说明你期望的结果可能会有所帮助。