Como podemos calcular soma dupla rapidamente em MATLAB

R

Riofunk7

Guest
Olá, Gente eu estou procurando um método soma dupla rápida para o seguinte cálculo. X = [0: N-1]; Y = [0: N-1]; Z = ExEy [exp (- (X (n)-Y (n)) 2 ^)]; Assim, em MATLAB, X = [0: N-1]; Y = [0: N-1]; para n = 1: N Zy (n) = soma (exp (- (X (n)-Y :))) ^ 2)) / N; final Z = soma (Zy) / N; Como mostrado acima, em primeiro lugar, eu tentei "loop" e "sum ()" função em Matlab. Mas, para grande número de sequência este método é muito lenta, se a amostra de tamanho N é grande. Há quem sabe mais rápido cálculo para este problema? Obrigado antecipadamente. Rio de Janeiro.
 
Oi Rio, por favor, tente o seguinte: X = [0: N-1]; Y = [0: N-1]; Xr = repmat (X, N, 1); Yr = repmat (Y :)), 1, N ); Dr = (XR-Yr); Z = soma (sum (exp (-Dr * Dr).)) / (N * N); Atenciosamente Z
 
Obrigado, Z. Eu poderia reduzir o tempo de simulação para metade.
 

Welcome to EDABoard.com

Sponsor

Back
Top