Bird
Raised Fist0
R Programmingprogramming~15 mins

Matrix multiplication (%*%) in R Programming - Mini Project: Build & Apply

Choose your learning style10 modes available
Matrix multiplication (%*%)
📖 Scenario: You work in a small company that needs to multiply two matrices to combine data from different departments. You will use R programming to do this.
🎯 Goal: Build a simple R program that multiplies two matrices using the matrix multiplication operator %*%.
📋 What You'll Learn
Create two matrices with exact values
Create a variable to store the result of matrix multiplication
Use the %*% operator to multiply the matrices
Print the resulting matrix
💡 Why This Matters
🌍 Real World
Matrix multiplication is used in data analysis, computer graphics, and scientific computing to combine data and transform information.
💼 Career
Understanding matrix multiplication is important for jobs in data science, machine learning, and software development where matrix operations are common.
Progress0 / 4 steps
1
Create two matrices
Create a matrix called matrix_a with values 1, 2, 3, 4 arranged in 2 rows and 2 columns, and a matrix called matrix_b with values 5, 6, 7, 8 arranged in 2 rows and 2 columns.
R Programming
Hint

Use the matrix() function with c() to create matrices. Specify nrow = 2 and ncol = 2.

2
Create a variable for the result
Create a variable called result to store the product of matrix_a and matrix_b.
R Programming
Hint

Just create the variable result first. You will assign the multiplication in the next step.

3
Multiply the matrices
Assign to result the product of matrix_a and matrix_b using the matrix multiplication operator %*%.
R Programming
Hint

Use %*% between matrix_a and matrix_b to multiply.

4
Print the result
Print the variable result to display the product matrix.
R Programming
Hint

Use print(result) to show the matrix.

Practice

(1/5)
1. What does the operator %*% do in R?
easy
A. It multiplies two matrices using matrix multiplication rules.
B. It adds two matrices element-wise.
C. It multiplies two numbers element-wise.
D. It transposes a matrix.

Solution

  1. Step 1: Understand the operator %*%

    The operator %*% in R is specifically used for matrix multiplication, not element-wise operations or addition.
  2. Step 2: Differentiate from other operations

    Element-wise multiplication uses * and addition uses +. Transpose uses t(). So %*% is for matrix multiplication.
  3. Final Answer:

    It multiplies two matrices using matrix multiplication rules. -> Option A
  4. Quick Check:

    %*% = matrix multiplication [OK]
Hint: Remember %*% means matrix multiplication, not element-wise [OK]
Common Mistakes:
  • Confusing %*% with element-wise multiplication (*)
  • Thinking %*% adds matrices
  • Using %*% to transpose matrices
2. Which of the following is the correct syntax to multiply two matrices A and B in R?
easy
A. A * B
B. A %/% B
C. A + B
D. A %*% B

Solution

  1. Step 1: Identify matrix multiplication syntax

    In R, matrix multiplication uses the operator %*% between two matrices.
  2. Step 2: Check other operators

    * is element-wise multiplication, + is addition, and %/% is integer division, so they are incorrect for matrix multiplication.
  3. Final Answer:

    A %*% B -> Option D
  4. Quick Check:

    Matrix multiply = A %*% B [OK]
Hint: Use %*% for matrix multiply, * is element-wise [OK]
Common Mistakes:
  • Using * instead of %*% for matrix multiplication
  • Using + or %/% operators mistakenly
  • Forgetting spaces around %*%
3. What is the result of the following R code?
A <- matrix(c(1, 2, 3, 4), nrow=2, ncol=2)
B <- matrix(c(5, 6, 7, 8), nrow=2, ncol=2)
C <- A %*% B
print(C)
medium
A. [[6, 8], [10, 12]]
B. [[5, 12], [21, 32]]
C. [[23, 31], [34, 46]]
D. [[12, 14], [16, 18]]

Solution

  1. Step 1: Construct matrices A and B (column-major order)

    A = [[1, 3], [2, 4]]
    B = [[5, 7], [6, 8]]
  2. Step 2: Compute matrix multiplication

    C[1,1] = 1*5 + 3*6 = 5 + 18 = 23
    C[1,2] = 1*7 + 3*8 = 7 + 24 = 31
    C[2,1] = 2*5 + 4*6 = 10 + 24 = 34
    C[2,2] = 2*7 + 4*8 = 14 + 32 = 46
  3. Final Answer:

    [[23, 31], [34, 46]] -> Option C
  4. Quick Check:

    Matrix multiply result = [[23,31],[34,46]] [OK]
Hint: Remember R fills matrices by column, not row [OK]
Common Mistakes:
  • Assuming row-wise filling of matrices
  • Mixing element-wise and matrix multiplication
  • Incorrect multiplication order
4. Consider the code below. What is the error and how to fix it?
A <- matrix(1:6, nrow=2, ncol=3)
B <- matrix(1:4, nrow=2, ncol=2)
C <- A %*% B
medium
A. Error: Syntax error; fix by adding commas in matrix() calls.
B. Error: Non-conformable arguments; fix by making A's columns equal B's rows.
C. No error; code runs fine and returns a 2x2 matrix.
D. Error: Cannot multiply matrices with different number of rows; fix by transposing B.

Solution

  1. Step 1: Check matrix dimensions

    A is 2x3, B is 2x2. For matrix multiplication, A's columns (3) must equal B's rows (2). They don't match.
  2. Step 2: Identify error and fix

    R will give 'non-conformable arguments' error. To fix, B must have 3 rows or A must have 2 columns. For example, B <- matrix(1:6, nrow=3, ncol=2).
  3. Final Answer:

    Error: Non-conformable arguments; fix by making A's columns equal B's rows. -> Option B
  4. Quick Check:

    Matrix dims must match inner dimensions [OK]
Hint: Check if A's columns = B's rows before multiplying [OK]
Common Mistakes:
  • Ignoring dimension mismatch
  • Trying to multiply incompatible matrices
  • Assuming R auto-adjusts matrix sizes
5. You have two matrices:
M1 <- matrix(c(2, 0, 1, 3, 4, 5), nrow=2, ncol=3)
M2 <- matrix(c(1, 2, 3, 4, 5, 6), nrow=3, ncol=2)

What is the resulting matrix when you compute M1 %*% M2?
hard
A. [[16, 37], [21, 45]]
B. [[8, 12], [39, 54]]
C. [[5, 10], [29, 40]]
D. [[2, 4], [3, 6]]

Solution

  1. Step 1: Construct matrices M1 and M2 (column-major order)

    M1 = [[2, 1, 4], [0, 3, 5]]
    M2 = [[1, 4], [2, 5], [3, 6]]
  2. Step 2: Compute each element of the product

    C[1,1] = 2*1 + 1*2 + 4*3 = 2 + 2 + 12 = 16
    C[1,2] = 2*4 + 1*5 + 4*6 = 8 + 5 + 24 = 37
    C[2,1] = 0*1 + 3*2 + 5*3 = 0 + 6 + 15 = 21
    C[2,2] = 0*4 + 3*5 + 5*6 = 0 + 15 + 30 = 45
  3. Final Answer:

    [[16, 37], [21, 45]] -> Option A
  4. Quick Check:

    Matrix multiply result = [[16,37],[21,45]] [OK]
Hint: Remember R fills matrices by column, check carefully [OK]
Common Mistakes:
  • Assuming row-wise filling instead of column-wise
  • Mixing element-wise and matrix multiplication
  • Misaligning matrix dimensions
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard