Bird
Raised Fist0
MATLABdata~30 mins

Singular value decomposition (svd) in MATLAB - Mini Project: Build & Apply

Choose your learning style10 modes available
Singular value decomposition (svd)
📖 Scenario: You work as a data analyst and want to understand the structure of a matrix representing some data. Singular value decomposition (SVD) helps break down the matrix into simpler parts.
🎯 Goal: Learn how to perform singular value decomposition on a matrix in MATLAB and display the decomposed matrices.
📋 What You'll Learn
Create a matrix variable named A with exact values
Create a variable k to select the number of singular values
Use MATLAB's svd function to decompose the matrix A
Display the matrices U, S, and V from the decomposition
💡 Why This Matters
🌍 Real World
Singular value decomposition is used in image compression, noise reduction, and data analysis to simplify complex data.
💼 Career
Understanding SVD is important for data scientists, engineers, and researchers working with large datasets and machine learning.
Progress0 / 4 steps
1
Create the matrix A
Create a 3x3 matrix called A with these exact values: first row [1 2 3], second row [4 5 6], third row [7 8 9].
MATLAB
Hint

Use square brackets and semicolons to create rows in MATLAB.

2
Set the number of singular values k
Create a variable called k and set it to 2 to select the first two singular values.
MATLAB
Hint

Just assign the number 2 to the variable k.

3
Perform singular value decomposition
Use the MATLAB svd function to decompose matrix A into U, S, and V. Write [U, S, V] = svd(A);.
MATLAB
Hint

Use square brackets to capture multiple outputs from svd.

4
Display the matrices U, S, and V
Use disp to print the matrices U, S, and V in order.
MATLAB
Hint

Use disp('Matrix U:') before displaying U to label the output.

Practice

(1/5)
1. What does the MATLAB function svd(A) return when applied to a matrix A?
easy
A. The determinant of matrix A.
B. The inverse of matrix A.
C. Three matrices: U, S, and V such that A = U * S * V'.
D. The transpose of matrix A.

Solution

  1. Step 1: Understand the purpose of svd

    The svd function decomposes a matrix into three parts: U, S, and V.
  2. Step 2: Recall the decomposition formula

    It satisfies the equation A = U * S * V', where U and V are orthogonal matrices and S is diagonal.
  3. Final Answer:

    Three matrices: U, S, and V such that A = U * S * V'. -> Option C
  4. Quick Check:

    svd(A) = U, S, V [OK]
Hint: Remember svd splits matrix into U, S, V parts [OK]
Common Mistakes:
  • Confusing svd with inverse or transpose
  • Expecting a single matrix output
  • Thinking svd returns determinant
2. Which of the following is the correct MATLAB syntax to compute the singular value decomposition of matrix A and store the results in U, S, and V?
easy
A. [U, S, V] = svd(A);
B. svd(U, S, V) = A;
C. U, S, V = svd(A);
D. svd(A, U, S, V);

Solution

  1. Step 1: Recall MATLAB function output syntax

    In MATLAB, multiple outputs are assigned using square brackets on the left side.
  2. Step 2: Match correct svd syntax

    The correct syntax is [U, S, V] = svd(A); to get all three matrices.
  3. Final Answer:

    [U, S, V] = svd(A); -> Option A
  4. Quick Check:

    Use square brackets for multiple outputs [OK]
Hint: Use square brackets for multiple outputs in MATLAB [OK]
Common Mistakes:
  • Using parentheses instead of brackets for outputs
  • Trying to assign outputs on the right side
  • Incorrect argument order in svd
3. Given the MATLAB code:
A = [3 1; 1 3];
[U, S, V] = svd(A);
disp(diag(S));

What will be the output of disp(diag(S))?
medium
A. [0; 0]
B. [3; 1]
C. [1; 3]
D. [4; 2]

Solution

  1. Step 1: Calculate singular values of A

    Matrix A is symmetric. Its singular values are the absolute values of eigenvalues. Eigenvalues of A are 4 and 2.
  2. Step 2: Understand svd output

    The diagonal of S contains singular values in descending order: 4 and 2.
  3. Final Answer:

    [4; 2] -> Option D
  4. Quick Check:

    Singular values = eigenvalues for symmetric matrix [OK]
Hint: For symmetric matrices, singular values = absolute eigenvalues [OK]
Common Mistakes:
  • Confusing singular values with matrix entries
  • Mixing order of singular values
  • Expecting singular values to be zero
4. Consider the MATLAB code snippet:
A = [1 2; 3 4];
[U, S, V] = svd(A);
U = svd(A);

What is the error in this code?
medium
A. Matrix A is not square, so svd cannot be applied.
B. The second call to svd assigns a matrix to U instead of three outputs.
C. The variable V is not assigned in the second svd call.
D. The svd function requires four output variables.

Solution

  1. Step 1: Analyze the first svd call

    The first call correctly assigns three outputs: U, S, V.
  2. Step 2: Analyze the second svd call

    The second call assigns U = svd(A); which returns only singular values as a vector, not a matrix U.
  3. Final Answer:

    The second call to svd assigns a matrix to U instead of three outputs. -> Option B
  4. Quick Check:

    svd(A) alone returns singular values vector [OK]
Hint: svd(A) alone returns singular values vector, not matrices [OK]
Common Mistakes:
  • Expecting svd(A) to return U matrix alone
  • Thinking svd requires square matrix only
  • Ignoring number of outputs in function call
5. You want to approximate a matrix A by keeping only the largest singular value and corresponding vectors using MATLAB. Which code snippet correctly performs this low-rank approximation?
hard
A. [U, S, V] = svd(A);
A_approx = U(:,1) * S(1,1) * V(:,1)';
B. [U, S, V] = svd(A);
A_approx = U(:,1) * V(:,1)';
C. [U, S, V] = svd(A);
A_approx = S(1,1) * V(:,1)';
D. [U, S, V] = svd(A);
A_approx = U(:,1) * S(:,1) * V(:,1)';

Solution

  1. Step 1: Understand low-rank approximation using svd

    Keeping only the largest singular value means using the first column of U, the first singular value, and the first column of V.
  2. Step 2: Construct the approximation

    The approximation is A_approx = U(:,1) * S(1,1) * V(:,1)', multiplying the first singular value and vectors.
  3. Final Answer:

    [U, S, V] = svd(A); A_approx = U(:,1) * S(1,1) * V(:,1)'; -> Option A
  4. Quick Check:

    Low-rank approx = U(:,1)*S(1,1)*V(:,1)' [OK]
Hint: Multiply first U column, singular value, and V column for approximation [OK]
Common Mistakes:
  • Omitting singular value in multiplication
  • Using entire S matrix instead of first singular value
  • Incorrect matrix dimensions in multiplication
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