0Pricing
R Academy · Leçon

Arithmétique et opérations sur les matrices

Effectuez des multiplications terme à terme et matricielles, des additions et des soustractions.

Arithmétique et opérations sur les matrices est une leçon R Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage R Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours R Academy comprend 4 leçons au total.

Opérations élément par élément ou matricielles

R distingue les opérations élément par élément (avec +, -, * et /) des véritables opérations matricielles (avec %*%). Comprendre cette différence est essentiel pour effectuer correctement des calculs d’algèbre linéaire.

A <- matrix(c(1,2,3,4), nrow = 2)
B <- matrix(c(5,6,7,8), nrow = 2)
cat('A:
'); print(A)
cat('B:
'); print(B)

# Element-wise multiply
cat('A * B (element-wise):
'); print(A * B)
# Matrix multiply
cat('A %*% B (matrix mult):
'); print(A %*% B)

Addition et soustraction élément par élément

Entre deux matrices de mêmes dimensions, + et - additionnent ou soustraient les éléments correspondants. Il s’agit uniquement d’opérations élément par élément.

# Monthly revenue vs target (in thousands)
revenue <- matrix(c(120,135,110,98, 145,160,132,115),
                  nrow = 2, byrow = TRUE)
target  <- matrix(c(130,130,130,130, 150,150,150,150),
                  nrow = 2, byrow = TRUE)

deviation <- revenue - target
cat('Revenue vs Target deviation:
')
print(deviation)
cat('Above target?:
')
print(revenue >= target)

Division et multiplication élément par élément

De même, * et / appliqués à des matrices de même taille opèrent élément par élément. Cela est utile pour mettre à l’échelle, normaliser ou combiner des matrices élément par élément.

# Scale a matrix by another (element-wise)
prices <- matrix(c(10, 20, 15, 25), nrow = 2)
quantities <- matrix(c(5, 3, 8, 2), nrow = 2)

total_cost <- prices * quantities
cat('Total cost per item:
')
print(total_cost)

# Normalise to row maximum
max_prices <- matrix(rep(apply(prices, 1, max), 2), nrow = 2)
norm_prices <- prices / max_prices
cat('Normalised prices:
')
print(norm_prices)

Opérations scalaires sur les matrices

Vous pouvez appliquer une opération faisant intervenir un scalaire (un nombre unique) à chaque élément d’une matrice à l’aide des opérateurs arithmétiques usuels. Le scalaire est recyclé pour correspondre aux dimensions de la matrice.

m <- matrix(c(10, 20, 30, 40, 50, 60), nrow = 2, ncol = 3)
cat('Original:
'); print(m)

cat('m + 5:
');  print(m + 5)
cat('m * 2:
');  print(m * 2)
cat('m / 10:
'); print(m / 10)
cat('m ^ 2:
');  print(m ^ 2)

Vraie multiplication matricielle %*%

A %*% B effectue une multiplication matricielle d’algèbre linéaire. Pour que l’opération fonctionne, le nombre de colonnes de A doit être égal au nombre de lignes de B. Le résultat possède comme dimensions le nombre de lignes de A × le nombre de colonnes de B.

# 2x3 times 3x2 = 2x2
A <- matrix(c(1,2,3, 4,5,6), nrow = 2, byrow = TRUE)
B <- matrix(c(7,8, 9,10, 11,12), nrow = 3, byrow = TRUE)
cat('A (2x3):
'); print(A)
cat('B (3x2):
'); print(B)
cat('A %*% B (2x2):
'); print(A %*% B)

rowSums() et colSums()

rowSums(m) calcule la somme de chaque ligne ; colSums(m) calcule la somme de chaque colonne. Les deux fonctions renvoient des vectors nommés si la matrice possède des noms de dimensions.

sales <- matrix(
  c(120,135,110,98,  145,160,132,115,  88,95,102,78),
  nrow = 3, byrow = TRUE,
  dimnames = list(c('Q1','Q2','Q3'), c('Jan','Feb','Mar','Apr'))
)
cat('Sales matrix:
'); print(sales)
cat('Quarterly totals:', rowSums(sales), '
')
cat('Monthly totals: ', colSums(sales), '
')

rowMeans() et colMeans()

rowMeans(m) et colMeans(m) renvoient respectivement la moyenne de chaque ligne et de chaque colonne. Elles sont plus rapides que l’application de mean() avec apply() pour cette tâche courante.

exam_scores <- matrix(
  c(88,92,75,81, 79,85,90,73, 95,78,82,88),
  nrow = 3, byrow = TRUE,
  dimnames = list(c('Alice','Bob','Carol'), c('Math','Sci','Eng','Hist'))
)
cat('Student averages:
')
print(rowMeans(exam_scores))
cat('Subject averages:
')
print(colMeans(exam_scores))

Opérations de comparaison sur les matrices

Les opérateurs de comparaison (==, >, <=, etc.) appliqués à des matrices renvoient une matrice logique de mêmes dimensions. Vous pouvez ensuite utiliser ce masque pour sélectionner des éléments ou les compter.

scores <- matrix(c(88,45,92,61,73,55,84,79), nrow = 2)
cat('Scores:
'); print(scores)

# Which elements pass?
passing_mask <- scores >= 60
cat('Passing mask:
'); print(passing_mask)
cat('Number passing:', sum(passing_mask), '
')
cat('Passing scores:', scores[passing_mask], '
')

apply() pour des opérations personnalisées sur les lignes ou colonnes

apply(m, MARGIN, FUN) applique une fonction aux lignes (MARGIN=1) ou aux colonnes (MARGIN=2). Utilisez-la lorsque vous avez besoin d’une agrégation personnalisée allant au-delà de rowSums/colMeans.

m <- matrix(c(3,1,4,1,5,9,2,6,5,3,5,8), nrow = 3)
cat('Matrix:
'); print(m)

# Max of each row
cat('Row max:  ', apply(m, 1, max), '
')
# Range of each column
cat('Col range:
')
print(apply(m, 2, range))
# Custom: count values > 4 per row
cat('Values > 4 per row:', apply(m, 1, function(x) sum(x > 4)), '
')

Diffuser un vector sur les lignes

Lorsque vous additionnez ou multipliez une matrice par un vector, R recycle le vector en le parcourant de manière répétée pour correspondre à la longueur de la matrice. Le recyclage se fait colonne par colonne, ce qui peut produire des résultats inattendus si vous souhaitez effectuer des opérations ligne par ligne.

m <- matrix(c(10,20,30, 40,50,60), nrow = 2)
cat('Matrix:
'); print(m)

# Add a 3-element vector: R recycles column-by-column
v <- c(1, 2, 3)
cat('m + c(1,2,3):
'); print(m + v)

# For row-wise scaling, use sweep()
row_weights <- c(0.5, 2.0)  # scale row 1 by 0.5, row 2 by 2
cat('Row-wise scaled:
'); print(sweep(m, 1, row_weights, '*'))

Récapitulatif des opérations arithmétiques

Principales fonctions d’opérations matricielles dans R :

  • +, -, *, / — opérations arithmétiques élément par élément
  • %*% — multiplication matricielle (algèbre linéaire)
  • rowSums(), colSums() — totaux par ligne ou par colonne
  • rowMeans(), colMeans() — moyennes par ligne ou par colonne
  • apply(m, 1, fn) / apply(m, 2, fn) — agrégation personnalisée par ligne ou par colonne
  • sweep() — opérations par ligne ou par colonne avec un vector
m <- matrix(c(4,9,16,25), nrow = 2)
cat('Original:
'); print(m)
cat('sqrt (element-wise):
'); print(sqrt(m))
cat('rowSums:', rowSums(m), '
')
cat('colMeans:', colMeans(m), '
')

Vérification rapide

Que calcule A * B lorsque A et B sont des matrices 2x2 dans R ?

Récapitulatif : arithmétique matricielle

Excellent travail ! Voici les points essentiels de cette leçon :

  • +, -, * et / appliqués aux matrices opèrent élément par élément
  • %*% effectue une véritable multiplication matricielle (lignes × colonnes)
  • rowSums(), colSums(), rowMeans() et colMeans() calculent des agrégats sur les lignes ou les colonnes
  • Les opérateurs de comparaison renvoient une matrice logique de même forme
  • apply(m, 1, fn) applique une fonction ligne par ligne ; apply(m, 2, fn) colonne par colonne
  • Utilisez sweep() pour mettre à l’échelle les lignes ou les colonnes à l’aide d’opérations vectorisées
# Final: compute grade curve (add 5 to all scores, cap at 100)
raw <- matrix(c(88,55,92,73,60,45,78,95), nrow = 2)
curved <- pmin(raw + 5, 100)  # pmin applies min element-wise
cat('Raw:
');    print(raw)
cat('Curved:
'); print(curved)

Questions Fréquemment Posées

La leçon « Arithmétique et opérations sur les matrices » est-elle gratuite ?

Oui — le texte complet de « Arithmétique et opérations sur les matrices » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours R Academy, passe à CoddyKit PRO. Le cours R Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Arithmétique et opérations sur les matrices » ?

Effectuez des multiplications terme à terme et matricielles, des additions et des soustractions. Tu pratiques R Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer R Academy ?

Aucune expérience préalable n'est requise. R Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Arithmétique et opérations sur les matrices » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon R Academy ?

Oui. Chaque leçon R Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Créer des matrices avec matrix()
  2. Indexation et sous-ensembles de matrices
  3. Arithmétique et opérations sur les matrices
  4. Transposer et remodeler des matrices
← Retour à R Academy