Bird
Raised Fist0
MATLABdata~10 mins

Singular value decomposition (svd) in MATLAB - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to perform singular value decomposition on matrix A.

MATLAB
[U, S, V] = [1](A);
Drag options to blanks, or click blank then click option'
Aeig
Bdet
Cinv
Dsvd
Attempts:
3 left
💡 Hint
Common Mistakes
Using eigenvalue function eig instead of svd.
Trying to invert the matrix with inv.
2fill in blank
medium

Complete the code to extract the singular values from matrix A.

MATLAB
S = [1](A);
Drag options to blanks, or click blank then click option'
Arank
Beig
Csvd
Ddet
Attempts:
3 left
💡 Hint
Common Mistakes
Using eig which returns eigenvalues, not singular values.
Using rank or det which do not return singular values.
3fill in blank
hard

Fix the error in the code to compute the SVD of matrix B.

MATLAB
[U, S, V] = svd([1]);
Drag options to blanks, or click blank then click option'
Ab
BB
CB()
DB[]
Attempts:
3 left
💡 Hint
Common Mistakes
Using lowercase b instead of B.
Adding parentheses or brackets after the variable name.
4fill in blank
hard

Fill both blanks to create a diagonal matrix of singular values and reconstruct matrix A.

MATLAB
S = diag([1]);
A_reconstructed = [2] * S * V';
Drag options to blanks, or click blank then click option'
As
BU
CV
DS
Attempts:
3 left
💡 Hint
Common Mistakes
Using S instead of the vector s for diag.
Using V instead of U for reconstruction.
5fill in blank
hard

Fill all three blanks to compute the reduced SVD of matrix M.

MATLAB
[[1], [2], [3]] = svd(M, 'econ');
Drag options to blanks, or click blank then click option'
AU
BS
CV
DE
Attempts:
3 left
💡 Hint
Common Mistakes
Using E which is not a standard output of svd.
Mixing the order of U, S, and V.

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