|
|
|
|
Bonjour,
je voudrais savoir comment on pourra augmenter la vitesse de ce code suivant:
for i=1:1:power(d,3)
MIN=min(F(:,2));
fprintf('%.0f de %.0f\n',i,power(d,3));
for j=1:1:power(n,3)
if real( sqrt((F(i,1)-D(j,1))^2+(F(i,2)-D(j,2))^2+(F(i,3)-D(j,3))^2))<=a+u
h=8.63*sqrt(1-power((sqrt((F(i,1)-D(j,1))^2+(F(i,2)-D(j,2))^2+(F(i,3)-D(j,3))^2)./a),2));
t=power((1-(sqrt((F(i,1)-D(j,1))^2+(F(i,2)-D(j,2))^2+(F(i,3)-D(j,3))^2)./a).^2),m/2);
b=abs(real(besseli(m,h))./(real((besseli(m,alpha)))).*real(t));%création du blob
V(d*u+MIN-F(i,2),d*u+MIN+F(i,1),d*u+MIN+F(i,3))= V(d*u+MIN-F(i,2),d*u+MIN+F(i,1),d*u+MIN+F(i,3))+ Q(j,1)*b;
else V(d*u+MIN-F(i,2),d*u+MIN+F(i,1),d*u+MIN+F(i,3))= V(d*u+MIN-F(i,2),d*u+MIN+F(i,1),d*u+MIN+F(i,3));
end
end
end
je voudrais remplacer les boucles for par autre chose qui pourra me donner une reponse rapide, mais j'arrive pas..
merci de m'aider le plus tot possible:)
Lama.
Configuration: Windows XP Firefox 2.0.0.11
Salut.
for i=1:100
a=3*i+150/1235;
endécris :rap=150/1235;
for i=1:100
a=3*i+rap;
endMais si tu as vraiment besoin de vitesse d'exécution, il faudra porté ton programme dans un langage compilé (C, Pascal, Fortran, Java...)
Salutation ! avant je croyais, maintenant je suis fixé.Jésus Christ
Char Snipeur |
En théorie, oui, il faut utiliser la calcul matricielle, mais là tu as une "matrice" à 3 indices, du coup c'est impossible (d'après mes souvenirs).
h=8.63*sqrt(1-power((sqrt((F(i,1)-D(j,1))^2+(F(i,2)-D(j,2))^2+(F(i,3)-D(j,3))^2)./a),2)); t=power((1- (sqrt((F(i,1)-D(j,1))^2+(F(i,2)-D(j,2))^2+(F(i,3)-D(j,3))^2)./a).^2),m/2);Salutation ! avant je croyais, maintenant je suis fixé.Jésus Christ Char Snipeur |
Observation 1 / Calcul reel ? ==> sqrt par realsqrt .....
|
Pardon pour les fautes d'orthographes partout .... je ne me suis pas relu ....(c'est tres mal)
|