我是R的初学者,我知道我做的方式是错误和缓慢的。我想填写矩阵,我需要计算每个项。我试过两个for循环,这是代码。你知道更好的方法吗?
KernelGaussianMatrix <- function(x,delta){
Mat = matrix(0,nrow=length(x),ncol=length(x))
for (i in 1:length(x)){
for (j in 1:length(x)){
Mat[i,j] = KernelGaussian(x[i],x[j],delta)
}
}
return(Mat)
}
THX
答案 0 :(得分:2)
您想要使用函数outer
,如下所示:
Mat <- outer(x,x,KernelGaussian,delta)
请注意,outer
中第三个参数之后的任何参数都作为附加参数提供给作为outer
的第三个参数提供的函数
答案 1 :(得分:0)
如果需要for循环来生成值,那么方法就可以了。
如果值已在数组values
中,您可以尝试mat = matrix(values, nrow=n, ncol=p)
或类似的内容。