gpt4 book ai didi

matlab - 对矩阵的行调用通用函数

转载 作者:行者123 更新时间:2023-11-30 09:13:31 33 4
gpt4 key购买 nike

我想有效地计算通用核函数的核矩阵MATLAB。这意味着我需要计算 X 的每一行 xk(x,y)以及 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 变体对从 XY 获取的每一行调用一个函数?

最佳答案

pdist2(X,Y, dist_func) 不幸的是计算的是 dist_func(X, Y(i,:)),而不是 dist_func(X(i, :),Y(i,:))。所以我需要的实际功能是,

function K=compute_kernel( k_func, X, Y )
% Woohoo! Efficient way to compute kernel
size(X)
size(Y)
m = size(X,1);
n = size(Y,1);
for i = 1:n
K(:,i) = pdist2( Y(i,:), X, k_func);
end

它不如仅使用 pdist2 那么好,但仍然比之前的情况高效得多。

关于matlab - 对矩阵的行调用通用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14981908/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com