# Octave adition de deux matrice sans boucle

**URL:** <https://www.debian-fr.org/t/octave-adition-de-deux-matrice-sans-boucle/18752>\
**Category:** Programmation\
**Created:** [Février 20, 2016, 7:12 UTC](https://www.debian-fr.org/t/octave-adition-de-deux-matrice-sans-boucle/18752 "2016-02-20T19:12:50Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![velo](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/v/e495f1/32.png) [@velo](https://www.debian-fr.org/u/velo)\
**Post date:** [Février 20, 2016, 7:12 UTC](https://www.debian-fr.org/t/octave-adition-de-deux-matrice-sans-boucle/18752/1 "2016-02-20T19:12:50Z")

</div>

bonjour   
je désire faire l’addition de deux matrices sans utiliser de boucle for  
alors j’ai essayé d’utiliser les fonctions reshape et repmat mais sans succé  
voici mes deux matrice :  
m1=[1 2 3 ; 4 5 6 ; 7 8 9];  
m2=[4 6 7 ; 4 8 6]  
en sorti je dois avoir une matrice de 6x3

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 20, 2016, 7:12 UTC](https://www.debian-fr.org/t/octave-adition-de-deux-matrice-sans-boucle/18752/2 "2016-02-20T19:12:50Z")

</div>

Comment veux tu faire l’addition d’une matrice 3x3 et d’une matrice 2x3 ça n’a pas de sens?? Quant à obtenir une matrice 6x3???

---

<div class="post-metadata">

**Author:** ![velo](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/v/e495f1/32.png) [@velo](https://www.debian-fr.org/u/velo)\
**Post date:** [Février 20, 2016, 7:13 UTC](https://www.debian-fr.org/t/octave-adition-de-deux-matrice-sans-boucle/18752/3 "2016-02-20T19:13:13Z")

</div>

bonjour  
voici la boucle que je veux éliminé 'car octave est très gourmand quand on utilise des boucles’  
for j=1:3  
for i=1:2  
m3[i\*j,:] = m1 ( j , : ) + m2 ( i , : ) ;  
endfor  
endfor

en sortie j’aurai une matrice 6x3

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 20, 2016, 7:13 UTC](https://www.debian-fr.org/t/octave-adition-de-deux-matrice-sans-boucle/18752/4 "2016-02-20T19:13:15Z")

</div>

Ça n’a rien à voir avec l’addition de matrices ton histoire et c’est un peu n’importe quoi… Par exemple, ta 5ième ligne sera toujours nulle???

[code]octave:14\> for j=1:3; for i=1:2;m3(i\*j,🙂 = m1 ( j , : ) + m2 ( i , : ) ;endfor  
;endfor  
octave:16\> m3  
m3 =

```
5 8 10
8 11 13

```

11 14 16  
8 13 12  
0 0 0  
11 16 15  
[/code]

Quelle est l’opération méthématique que tu veux faire? Obtenir la matrice contenant toutes les sommes des vecteurs lignes? Ce serait

[code]octave:23\> for j=1:3; for i=1:2;m3((i-1)\*3+j,🙂 = m1 ( j , : ) + m2 ( i , : ) ;  
endfor  
;endfor  
octave:25\> m3  
m3 =

```
5 8 10
8 11 13

```

11 14 16  
5 10 9  
8 13 12  
11 16 15

octave:27\>[/code]ou alors

[code]octave:31\> for j=1:3; for i=1:2;m3((j-1)\*2+i,🙂 = m1 ( j , : ) + m2 ( i , : ) ;  
endfor  
;endfor  
octave:33\> m3  
m3 =

```
5 8 10
5 10 9
8 11 13
8 13 12

```

11 14 16  
11 16 15  
[/code]

---

<div class="post-metadata">

**Author:** ![velo](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/v/e495f1/32.png) [@velo](https://www.debian-fr.org/u/velo)\
**Post date:** [Février 20, 2016, 7:13 UTC](https://www.debian-fr.org/t/octave-adition-de-deux-matrice-sans-boucle/18752/5 "2016-02-20T19:13:26Z")

</div>

voici le code corriger

```auto
k=1;
for j=1:3
for i=1:2
m3[k,:] = m1 ( j , : ) + m2 ( i , : ) ;
k=k+1;
endfor
endfor

```

je désire faire se calcule en utilisant reshape et repmat

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 20, 2016, 7:13 UTC](https://www.debian-fr.org/t/octave-adition-de-deux-matrice-sans-boucle/18752/6 "2016-02-20T19:13:26Z")

</div>

Bon, donc c’est

`for j=1:3; for i=1:2;m3((j-1)*2+i,:) = m1 ( j , : ) + m2 ( i , : );
endfor;
endfor`  
(l’introduction de k n’apporte rien).

L’utilisation de reshap et autre ne changera strictement rien sur la complexité de ton code et sur le temps d’éxécution, pire ces deux fonctions reconstruisent des matrices donc réorganisent les deux matrices données. Tu y perdras sur tous les plans (il faut y rajouter l’appel des fonctions).

PS: Où te sers tu de cette opération curieuse?

---

<div class="post-metadata">

**Author:** ![velo](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/v/e495f1/32.png) [@velo](https://www.debian-fr.org/u/velo)\
**Post date:** [Février 20, 2016, 7:13 UTC](https://www.debian-fr.org/t/octave-adition-de-deux-matrice-sans-boucle/18752/7 "2016-02-20T19:13:28Z")

</div>

merci pour ta réponse  
mais je désire faire le calcule de deux manière :  
la première avec les boucles et la deuxième avec reshap et repmat

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 20, 2016, 7:13 UTC](https://www.debian-fr.org/t/octave-adition-de-deux-matrice-sans-boucle/18752/8 "2016-02-20T19:13:32Z")

</div>

repmat(m1,2,1)+repmat(m2,3,1)
