[Users-fr] Somme d'un vecteur et d'une matrice

Jean-Yves Baudais Jean-Yves.Baudais at insa-rennes.fr
Ven 14 Avr 11:30:52 CEST 2017


Bonjour,

Le 13/04/2017 à 11:36, antoine.elias at scilab-enterprises.com a écrit :
> Cela me semble possible en passant par un produit de Kronecker [...]

Par curiosité j'ai testé la rapidité les trois solutions proposées

iter=100;
out=zeros(3,iter);
for i=1:iter
   mprintf("\r%d  ",i)
   n=2e3;V=rand(1,n);
   timer();ones(n,1)*V;tmp=timer();
   out(1,i)=tmp;
   timer();repmat(V,n,1);tmp=timer();
   out(2,i)=tmp;
   timer();V.*.ones(n,1);tmp=timer();
   out(3,i)=tmp;
end
mean(out,'c')

et sur ma machine le résultat est

ans  =
0.04524
0.12252
0.03076

   Moralité : le produit de Kroneker est en moyenne un peu plus rapide 
que le produit vectoriel. Quand à la fonction repmat, ce n'est pas une 
bonne solution. Bien évidement, tout ça n'est vrai que dans le cas 
traité ici.

Jean-Yves



Plus d'informations sur la liste de diffusion users-fr