我想为 Matlab 中的通用核函数有效地计算核矩阵。这意味着我需要k(x,y)
为每一行x
和X
每一行y
计算Y
. 这是一些计算我想要的matlab代码,但它相当慢,
function K=compute_kernel( k_func, X, Y )
m = size(X,1);
n = size(Y,1);
K = zeros(m,n);
for i = 1:m
for j = 1:n
K(i,j) = k_func(X(i,:)', Y(j,:)');
end
end
end
是否有任何其他方法可以解决这个问题,例如某些bsxfun
变体在从X
and获取的每一行上调用一个函数Y
?