Bird
Raised Fist0
MATLABdata~20 mins

Vectorization vs loops in MATLAB - Practice Questions

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Vectorization Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of vectorized vs loop sum
What is the output of the following MATLAB code snippet?
MATLAB
A = 1:5;
loop_sum = 0;
for i = 1:length(A)
    loop_sum = loop_sum + A(i);
end
vector_sum = sum(A);
disp([loop_sum, vector_sum]);
A[15 15]
B[10 15]
C[15 10]
D[0 15]
Attempts:
2 left
💡 Hint
Think about how sum and loops accumulate values.
❓ Predict Output
intermediate
2:00remaining
Result of element-wise multiplication
What is the output of this MATLAB code?
MATLAB
A = [1 2 3];
B = [4 5 6];
for i = 1:length(A)
    C(i) = A(i) * B(i);
end
disp(C);
A[1 2 3]
B[5 7 9]
C[24 30 36]
D[4 10 18]
Attempts:
2 left
💡 Hint
Multiply each pair of elements at the same position.
❓ Predict Output
advanced
3:00remaining
Vectorized vs loop matrix multiplication output
What is the output of this MATLAB code?
MATLAB
A = [1 2; 3 4];
B = [5 6; 7 8];
C = zeros(2);
for i = 1:2
    for j = 1:2
        for k = 1:2
            C(i,j) = C(i,j) + A(i,k)*B(k,j);
        end
    end
end
D = A*B;
disp(C);
disp(D);
A
[[19 22]; [43 50]]
[[19 22]; [43 50]]
B
[[17 20]; [39 46]]
[[19 22]; [43 50]]
C
[[19 22]; [43 50]]
[[17 20]; [39 46]]
D
[[0 0]; [0 0]]
[[19 22]; [43 50]]
Attempts:
2 left
💡 Hint
Matrix multiplication sums products of rows and columns.
❓ Predict Output
advanced
3:00remaining
Performance difference in vectorized vs loop sum
Which statement about the output of this MATLAB code is true?
MATLAB
N = 1e7;
A = ones(1,N);

% Timing loop sum
tic
s1 = 0;
for i = 1:N
    s1 = s1 + A(i);
end
t_loop = toc;

% Timing vectorized sum
tic
s2 = sum(A);
t_vec = toc;

fprintf('Loop time: %.4f, Vector time: %.4f\n', t_loop, t_vec);
ALoop sum is significantly faster than vectorized sum.
BBoth times are about the same.
CVectorized sum is significantly faster than loop sum.
DCode will produce an error due to large N.
Attempts:
2 left
💡 Hint
Think about how MATLAB optimizes vector operations.
🧠 Conceptual
expert
2:00remaining
Why vectorization is preferred over loops in MATLAB?
Which of the following is the main reason MATLAB users prefer vectorized code over loops?
AVectorized code is easier to read but slower to execute.
BVectorized code runs faster because MATLAB is optimized for matrix and vector operations.
CLoops are deprecated in MATLAB and cannot be used anymore.
DLoops cause syntax errors in MATLAB.
Attempts:
2 left
💡 Hint
Think about MATLAB's design focus on matrices and vectors.

Practice

(1/5)
1. Which of the following best describes vectorization in MATLAB?
easy
A. Writing functions that call themselves recursively
B. Using nested for loops to process each element individually
C. Manually indexing each element to apply operations
D. Performing operations on entire arrays at once without explicit loops

Solution

  1. Step 1: Understand vectorization concept

    Vectorization means applying operations to whole arrays at once, avoiding explicit loops.
  2. Step 2: Compare options

    Only Performing operations on entire arrays at once without explicit loops describes this correctly; others describe loops or recursion.
  3. Final Answer:

    Performing operations on entire arrays at once without explicit loops -> Option D
  4. Quick Check:

    Vectorization = whole-array operations [OK]
Hint: Vectorization means no loops, operate on full arrays [OK]
Common Mistakes:
  • Confusing vectorization with loops
  • Thinking recursion is vectorization
  • Assuming manual indexing is vectorization
2. Which MATLAB syntax correctly sums all elements of a vector A using vectorization?
easy
A. sum = 0; for i = 1:length(A); sum = sum + A(i); end
B. sum = A + A;
C. sum = sum(A);
D. sum = A(1) + A(2);

Solution

  1. Step 1: Identify vectorized sum syntax

    MATLAB's built-in sum() function sums all elements of an array directly.
  2. Step 2: Check options

    sum = sum(A); uses sum(A), which is vectorized. sum = 0; for i = 1:length(A); sum = sum + A(i); end uses a loop. sum = A + A; adds vector to itself. sum = A(1) + A(2); sums only two elements.
  3. Final Answer:

    sum = sum(A); -> Option C
  4. Quick Check:

    sum(A) sums all elements vectorized [OK]
Hint: Use built-in sum() for vectorized addition [OK]
Common Mistakes:
  • Using loops instead of sum()
  • Adding vector to itself instead of summing
  • Summing only part of the vector
3. What is the output of this MATLAB code?
A = [1, 2, 3, 4]; B = A .* 2;
medium
A. [1, 4, 9, 16]
B. [2, 4, 6, 8]
C. [3, 4, 5, 6]
D. Error: Matrix dimensions must agree

Solution

  1. Step 1: Understand element-wise multiplication

    The operator .* multiplies each element of A by 2 individually.
  2. Step 2: Calculate each element

    1*2=2, 2*2=4, 3*2=6, 4*2=8, so B = [2, 4, 6, 8].
  3. Final Answer:

    [2, 4, 6, 8] -> Option B
  4. Quick Check:

    Element-wise multiply by 2 = [2,4,6,8] [OK]
Hint: .* multiplies each element individually [OK]
Common Mistakes:
  • Confusing .* with matrix multiplication (*)
  • Expecting squared values instead of doubled
  • Thinking it causes dimension errors
4. Identify the error in this MATLAB code that tries to double each element of vector A:
A = [1, 2, 3]; for i = 1:length(A); A = A * 2; end
medium
A. The loop variable i is not used inside the loop
B. Using * instead of .* causes dimension mismatch
C. The vector A is not initialized
D. The loop range is incorrect

Solution

  1. Step 1: Analyze the loop body

    The code multiplies entire vector A by 2 each iteration, ignoring i.
  2. Step 2: Understand the effect

    Since i is unused, the loop repeats the same operation, scaling A multiple times (by 8 total) instead of doubling individual elements via indexing.
  3. Final Answer:

    The loop variable i is not used inside the loop -> Option A
  4. Quick Check:

    Loop variable unused causes logic error [OK]
Hint: Use loop variable to index elements inside loop [OK]
Common Mistakes:
  • Ignoring loop variable usage
  • Confusing * and .* operators
  • Assuming vector auto-updates element-wise
5. You want to compute the square of each element in a large vector X efficiently. Which MATLAB code snippet uses vectorization correctly?
hard
A. Y = X .* X;
B. Y = zeros(size(X)); for i = 1:length(X); Y = X(i)^2; end
C. Y = X ^ 2;
D. for i = 1:length(X); Y(i) = X(i)^2; end

Solution

  1. Step 1: Understand vectorized squaring

    Element-wise multiplication .* between X and X squares each element efficiently.
  2. Step 2: Check each option

    for i = 1:length(X); Y(i) = X(i)^2; end uses a loop (less efficient). Y = zeros(size(X)); for i = 1:length(X); Y = X(i)^2; end overwrites Y with a scalar each iteration. Y = X ^ 2; attempts invalid matrix power for vectors. Y = X .* X; is correct.
  3. Final Answer:

    Y = X .* X; -> Option A
  4. Quick Check:

    Element-wise multiply vector by itself = square [OK]
Hint: Use .* to square vectors element-wise [OK]
Common Mistakes:
  • Using ^ instead of .^ or .* for element-wise power
  • Overwriting output inside loop
  • Using loops instead of vectorization
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