在以下功能中,我想进行一些更改以使其快速.它本身很快但我必须在for循环中多次使用它所以需要很长时间.我想如果我用bsxfun替换repmat将使它更快但我不确定.我该怎么做这些替换
function out = lagcal(y1,y1k,source)
kn1 = y1(:);
kt1 = y1k(:);
kt1x = repmat(kt1,1,length(kt1));
eq11 = 1./(prod(kt1x-kt1x'+eye(length(kt1))));
eq1 = eq11'*eq11;
dist = repmat(kn1,1,length(kt1))-repmat(kt1',length(kn1),1);
[fixi,fixj] = find(dist==0); dist(fixi,fixj)=eps;
mult = 1./(dist);
eq2 = prod(dist,2);
eq22 = repmat(eq2,1,length(kt1));
eq222 = eq22 .* mult;
out = eq1 .* (eq222'*source*eq222);
end
Run Code Online (Sandbox Code Playgroud)
它真的加快了我的功能吗?