Page 1 sur 1

Puissance de Hadamard

Publié : lun. oct. 17, 2011 2:34 pm
par alb
1) [[1, 2],[3,4]] .^ 2 renvoie [5,25] au lieu de [[1,4],[9,16]]
2) Y a-t-il une commande directe (autre que somme(somme(M))) qui renvoie la somme des éléments d'une matrice ?

Re: Puissance de Hadamard

Publié : jeu. oct. 20, 2011 5:06 am
par alb
Ce n'est pas un bug ?
Le pb semble ne concerner que les puissances entieres paires

Re: Puissance de Hadamard

Publié : jeu. oct. 20, 2011 6:13 am
par parisse
Je vais voir si je peux modifier .^ pour les matrices, mais pas sur...

Re: Puissance de Hadamard

Publié : jeu. oct. 20, 2011 7:24 am
par alb
Désolé pour le up !
Je dois pouvoir m'en sortir comme ça:

Code : Tout sélectionner

Puissance(M,n):={
  local s,res,j,k;
  s:=dim(M);
  res:=copy(M);
  pour j de 0 jusque s[0]-1 faire
    pour k de 0 jusque s[1]-1 faire
      res[j,k]=<res[j,k]^n
    fpour
  fpour
  retourne res
}
:;
ou mieux:

Code : Tout sélectionner

apply(x->x^n,M,matrix)

Re: Puissance de Hadamard

Publié : jeu. oct. 20, 2011 8:49 am
par parisse
bon, je viens de modifier dans le source, ce n'etait pas difficile en definitive.
Je modifie aussi convert(m,list) pour aplatir m en liste si m est une matrice. On pourra donc faire somme(convert(m,list)) pour avoir la somme des elements d'une matrice.

Re: Puissance de Hadamard

Publié : jeu. oct. 20, 2011 7:02 pm
par alb
Merci. Pour la somme des éléments en relisant la doc je vois qu'on peut faire aussi count(x->x,M)
ou encore plus court count(id,M)