Somme cumulée avec MATLAB
Ce tutoriel abordera la recherche de la somme cumulée d’un vecteur ou d’une matrice à l’aide de la fonction cumsum()
dans MATLAB.
Obtenez la somme cumulative d’un vecteur ou d’une matrice à l’aide de la fonction cumsum()
dans MATLAB
Nous pouvons utiliser la fonction intégrée cumsum()
de MATLAB pour trouver la somme cumulée d’un vecteur ou d’une matrice.
Si l’entrée est un vecteur, alors la fonction cumsum()
renverra la somme cumulée des éléments du vecteur. Si l’entrée est une matrice, alors la fonction cumsum()
renverra la somme cumulée des colonnes de la matrice.
Si l’entrée est un tableau multidimensionnel, alors la fonction cumsum()
renverra la somme cumulée de la première dimension non-singleton. Par exemple, trouvons la somme cumulée des éléments d’un vecteur.
Voir le code ci-dessous.
clc
v = 1:9
s = cumsum(v)
Production :
v =
1 2 3 4 5 6 7 8 9
s =
1 3 6 10 15 21 28 36 45
Trouvons la somme cumulée d’une matrice. Voir le code ci-dessous.
clc
v = [1:3; 1:3]
s = cumsum(v)
Production :
v =
1 2 3
1 2 3
s =
1 2 3
2 4 6
Dans la sortie, la variable s contient la somme cumulée de chaque colonne. On peut aussi trouver la somme cumulée des lignes d’une colonne en passant un entier en second argument dans la fonction cumsum()
.
Par exemple, trouvons la somme cumulée des lignes de la matrice ci-dessus. Voir le code ci-dessous.
clc
v = [1:3; 1:3]
s = cumsum(v,2)
Production :
v =
1 2 3
1 2 3
s =
1 3 6
1 3 6
En sortie, la variable s
contient la somme cumulée de chaque ligne.
On peut aussi trouver la somme cumulée des entrées logiques. Dans ce cas, la fonction cumsum()
utilisera 0 à la place de faux et 1 est vrai, et la réponse sera de type de données double.
Nous pouvons également inverser la somme cumulée dans un vecteur ou une matrice. Par défaut, la fonction cumsum()
trouve une somme cumulée à partir du côté gauche d’un vecteur ou d’une matrice, mais nous pouvons également trouver la somme cumulée à partir du côté droit d’un vecteur ou d’une matrice en utilisant une chaîne inversée à l’intérieur du fonction cumsum()
.
Par exemple, trouvons la somme cumulée à partir du côté droit d’un vecteur. Voir le code ci-dessous.
clc
v = 1:3
s = cumsum(v,'reverse')
Production :
v =
1 2 3
s =
6 5 3
Dans la sortie, la somme cumulée commence du côté droit. Si nous avons des valeurs NaN à l’intérieur d’un vecteur ou d’une matrice et trouvons sa somme cumulée, la fonction cumsum()
transformera les valeurs de sortie en NaN dès que la première valeur NaN est rencontrée.
Pour éviter la valeur NaN, nous pouvons dire à la fonction d’ignorer les valeurs NaN en utilisant la chaîne omitnan
comme argument dans la fonction cumsum()
. Par exemple, créons un vecteur contenant des valeurs NaN et trouvons sa somme cumulée à l’aide de la fonction cumsum()
.
Voir le code ci-dessous.
clc
v = [1 NaN 5 6 7 NaN NaN]
s = cumsum(v,'omitnan')
Production :
v =
1 NaN 5 6 7 NaN NaN
s =
1 1 6 12 19 19 19
La fonction cumsum()
a calculé la somme cumulée en ignorant les valeurs NaN dans la sortie.