【发布时间】:2013-06-14 14:54:34
【问题描述】:
function [D] = distChiSq( W, X )
%%% find the Chi2Dist distance between each weight vector and X
% W is nxd
m = size(W,1); n = size(X,1);
k = size(W,2);
mOnes = ones(1,m); D = zeros(m,n);
for i=1:n
Xi = X(i,:); XiRep = Xi( mOnes, : );
s = XiRep + W; /************/
d = XiRep - W; /************/
D(:,i) = sum( d.^2 ./ (s+eps), 2 ); /************/
end
D = D/2;
这是我的权重矩阵和数据之间的 Chi2 距离计算的一部分。标记行是所有代码中消耗最多的行。有什么方法可以在 MATLAB 中更快地做到这一点?
如果数据比s = nxm, d = nxm 为nxm,并且D 保持距离。 n 是实例数,m 是变量数。
【问题讨论】:
-
您是否通过 MATLAB 分析器运行代码?
-
是的,我已经根据分析器指出了这些线。
标签: performance matlab optimization