Bird
Raised Fist0
MATLABdata~20 mins

Anonymous functions in MATLAB - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Anonymous Functions Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of an anonymous function with vector input
What is the output of the following MATLAB code?
MATLAB
f = @(x) x.^2 + 2*x + 1;
result = f([1 2 3]);
disp(result);
A[4 9 16]
B[4 8 12]
C[4 9 15]
D[1 4 9]
Attempts:
2 left
💡 Hint
Remember that the operator .^ applies element-wise power to each element in the vector.
❓ Predict Output
intermediate
2:00remaining
Output of nested anonymous functions
What is the output of this MATLAB code?
MATLAB
g = @(x) x + 1;
h = @(f, x) f(x) * 2;
result = h(g, 3);
disp(result);
A6
B7
C8
D9
Attempts:
2 left
💡 Hint
Evaluate the inner function g(3) first, then multiply by 2.
🔧 Debug
advanced
2:00remaining
Identify the error in anonymous function definition
Which option will cause an error when defining the anonymous function in MATLAB?
Af = @(x) x^2 + 3*x + 2;
Bf = @(x) x.^2 + 3*x + 2;
Cf = @(x) (x^2) + 3*x + 2;
Df = @(x) x**2 + 3*x + 2;
Attempts:
2 left
💡 Hint
Check the operator used for power in MATLAB.
❓ Predict Output
advanced
2:00remaining
Output of anonymous function with conditional expression
What is the output of this MATLAB code?
MATLAB
f = @(x) (x > 0) .* x + (x <= 0) .* 0;
result = f([-2 0 3]);
disp(result);
A[0 0 3]
B[-2 0 3]
C[0 0 0]
D[1 0 3]
Attempts:
2 left
💡 Hint
The function returns x if x is positive, otherwise 0.
🧠 Conceptual
expert
2:00remaining
Behavior of anonymous functions capturing variables
Consider the following MATLAB code. What is the value of y after running it?
MATLAB
a = 5;
f = @(x) x + a;
a = 10;
y = f(3);
A8
B13
C3
DError due to variable scope
Attempts:
2 left
💡 Hint
Anonymous functions use the current value of workspace variables at the time of execution.

Practice

(1/5)
1. What is an anonymous function in MATLAB?
easy
A. A quick, unnamed function created using the '@' symbol.
B. A function saved in a separate file with a name.
C. A function that can only be used inside loops.
D. A function that requires no input arguments.

Solution

  1. Step 1: Understand the definition of anonymous functions

    Anonymous functions in MATLAB are small, unnamed functions created using the '@' symbol.
  2. Step 2: Compare options with the definition

    A quick, unnamed function created using the '@' symbol. correctly describes anonymous functions as quick, unnamed functions created with '@'. Other options describe named functions or incorrect properties.
  3. Final Answer:

    A quick, unnamed function created using the '@' symbol. -> Option A
  4. Quick Check:

    Anonymous function = unnamed function with '@' [OK]
Hint: Look for '@' symbol to identify anonymous functions [OK]
Common Mistakes:
  • Confusing anonymous functions with regular named functions
  • Thinking anonymous functions must have no inputs
  • Assuming anonymous functions are saved in separate files
2. Which of the following is the correct syntax to create an anonymous function that squares its input x?
easy
A. f = @(x) x^2;
B. f = function(x) x^2;
C. f = @x x^2;
D. f = (x) => x^2;

Solution

  1. Step 1: Recall MATLAB anonymous function syntax

    The correct syntax uses '@(args) expression;' so for squaring x, it is '@(x) x^2;'.
  2. Step 2: Check each option

    f = @(x) x^2; matches the correct syntax. f = function(x) x^2; uses incorrect keyword 'function'. f = @x x^2; misses parentheses. f = (x) => x^2; uses arrow syntax from other languages.
  3. Final Answer:

    f = @(x) x^2; -> Option A
  4. Quick Check:

    Anonymous function syntax = @(args) expression [OK]
Hint: Remember '@(x) expression;' for anonymous functions [OK]
Common Mistakes:
  • Omitting parentheses around input arguments
  • Using 'function' keyword inside anonymous function
  • Using arrow syntax from other languages
3. What is the output of the following MATLAB code?
f = @(x) x + 5;
result = f(10);
disp(result);
medium
A. 5
B. 10
C. 15
D. Error

Solution

  1. Step 1: Understand the anonymous function definition

    The function f adds 5 to its input x.
  2. Step 2: Calculate the function output for input 10

    f(10) = 10 + 5 = 15.
  3. Final Answer:

    15 -> Option C
  4. Quick Check:

    10 + 5 = 15 [OK]
Hint: Apply input to expression inside @(x) function [OK]
Common Mistakes:
  • Confusing input and output values
  • Expecting function to multiply instead of add
  • Thinking anonymous functions cause errors without file
4. Identify the error in this MATLAB anonymous function:
g = @x x^2 + 3;
medium
A. Anonymous functions cannot use addition.
B. Missing parentheses around input argument x.
C. The '@' symbol is not allowed here.
D. The function must be saved in a separate file.

Solution

  1. Step 1: Check anonymous function syntax

    Anonymous functions require parentheses around input arguments, like '@(x)'.
  2. Step 2: Identify the syntax error

    The code uses '@x' without parentheses, which is invalid syntax.
  3. Final Answer:

    Missing parentheses around input argument x. -> Option B
  4. Quick Check:

    Anonymous function input must be in parentheses [OK]
Hint: Always use @(input) with parentheses [OK]
Common Mistakes:
  • Omitting parentheses around inputs
  • Thinking '@' can be used without parentheses
  • Believing anonymous functions need separate files
5. You want to create an anonymous function h that takes two inputs x and y and returns x squared plus y cubed. Which is the correct way to write this?
hard
A. h = @(x y) x^2 + y^3;
B. h = @(x,y) x^2 * y^3;
C. h = @(x,y) (x^2), (y^3);
D. h = @(x,y) x^2 + y^3;

Solution

  1. Step 1: Understand multiple inputs in anonymous functions

    Multiple inputs are separated by commas inside parentheses: @(x,y).
  2. Step 2: Check the expression for correct operations

    The function should return x squared plus y cubed, so use '+' operator, not '*'.
  3. Final Answer:

    h = @(x,y) x^2 + y^3; -> Option D
  4. Quick Check:

    Multiple inputs use commas; '+' adds results [OK]
Hint: Separate inputs with commas and use correct operators [OK]
Common Mistakes:
  • Omitting commas between inputs
  • Using wrong operators like multiplication instead of addition
  • Trying to separate expressions with commas outside parentheses
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