Bird
Raised Fist0
MATLABdata~20 mins

Function handles in MATLAB - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Function Handle Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of a simple function handle call
What is the output of this MATLAB code?
MATLAB
f = @(x) x^2 + 3*x + 1;
result = f(2);
disp(result);
A15
B9
C7
D11
Attempts:
2 left
💡 Hint
Calculate 2 squared plus 3 times 2 plus 1.
❓ Predict Output
intermediate
2:00remaining
Function handle with multiple inputs
What is the output of this MATLAB code?
MATLAB
g = @(x,y) x*y + y^2;
val = g(3,4);
disp(val);
A28
B19
C25
D16
Attempts:
2 left
💡 Hint
Calculate 3*4 + 4^2.
🔧 Debug
advanced
2:00remaining
Identify the error in function handle usage
What error does this MATLAB code produce?
MATLAB
h = @(x) x(2) + 5;
result = h(3);
disp(result);
AUndefined function or variable 'x'.
BIndex exceeds matrix dimensions.
CSyntax error: missing operator.
DNo error, output is 8.
Attempts:
2 left
💡 Hint
Check how x is used inside the function handle.
🧠 Conceptual
advanced
2:00remaining
Function handle behavior with variable scope
Consider this MATLAB code snippet. What is the output?
MATLAB
a = 10;
f = @(x) x + a;
a = 20;
disp(f(5));
A15
BError: Undefined variable 'a'.
C25
D5
Attempts:
2 left
💡 Hint
Anonymous functions in MATLAB capture variables by value at the time of creation.
❓ Predict Output
expert
2:00remaining
Output of nested function handles with array input
What is the output of this MATLAB code?
MATLAB
f1 = @(x) x.^2;
f2 = @(g, y) g(y) + 1;
arr = [1, 2, 3];
result = f2(f1, arr);
disp(result);
A[1 4 9]
B[2 4 6]
C[2 5 10]
DError: Matrix dimensions must agree.
Attempts:
2 left
💡 Hint
Apply f1 to each element of arr, then add 1 to each result.

Practice

(1/5)
1. What does a function handle in MATLAB allow you to do?
easy
A. Store a reference to a function that can be called later
B. Create a new variable type
C. Automatically run a function without calling it
D. Convert a function into a string

Solution

  1. Step 1: Understand what a function handle is

    A function handle is a way to refer to a function without executing it immediately.
  2. Step 2: Identify the purpose of function handles

    They let you store and pass functions as variables to call later.
  3. Final Answer:

    Store a reference to a function that can be called later -> Option A
  4. Quick Check:

    Function handle = reference to function [OK]
Hint: Think of function handles as pointers to functions [OK]
Common Mistakes:
  • Confusing function handles with function execution
  • Thinking function handles create new data types
  • Assuming function handles convert functions to strings
2. Which of the following is the correct way to create a function handle for the built-in function sin in MATLAB?
easy
A. handle = sin();
B. handle = &sin;
C. handle = @sin;
D. handle = sin;

Solution

  1. Step 1: Recall the syntax for creating function handles

    In MATLAB, function handles are created using the @ symbol followed by the function name without parentheses.
  2. Step 2: Check each option

    handle = @sin; uses @sin which is correct. handle = sin(); calls sin immediately, C uses & which is not MATLAB syntax, and D assigns the function name as a variable without @ which is invalid.
  3. Final Answer:

    handle = @sin; -> Option C
  4. Quick Check:

    Use @ before function name to create handle [OK]
Hint: Use @ before function name, no parentheses [OK]
Common Mistakes:
  • Adding parentheses when creating handles
  • Using & instead of @
  • Assigning function name without @
3. What is the output of the following MATLAB code?
f = @(x) x^2 + 3;
result = f(2);
medium
A. 5
B. Error
C. 10
D. 7

Solution

  1. Step 1: Understand the anonymous function definition

    The function f takes input x and returns x squared plus 3.
  2. Step 2: Calculate the function output for x = 2

    f(2) = 2^2 + 3 = 4 + 3 = 7.
  3. Final Answer:

    7 -> Option D
  4. Quick Check:

    2 squared plus 3 equals 7 [OK]
Hint: Plug input into function formula carefully [OK]
Common Mistakes:
  • Forgetting to square the input
  • Adding instead of multiplying
  • Expecting syntax error from anonymous function
4. Identify the error in the following MATLAB code that tries to create a function handle:
g = @(x) x + 1;
h = @g(2);
medium
A. Cannot use parentheses when creating a function handle
B. Function handle syntax is correct
C. Missing semicolon after function handle
D. Function handle must be created with a string

Solution

  1. Step 1: Analyze the function handle creation

    The first line correctly creates an anonymous function g. The second line tries to create a handle h using @g(2), which is incorrect syntax.
  2. Step 2: Understand correct function handle usage

    The @ operator must be followed by a function name or anonymous function without parentheses. Using parentheses calls the function, which is not allowed when creating a handle.
  3. Final Answer:

    Cannot use parentheses when creating a function handle -> Option A
  4. Quick Check:

    No parentheses allowed after @ when creating handles [OK]
Hint: No parentheses after @ when defining handles [OK]
Common Mistakes:
  • Using parentheses after @
  • Confusing function call with handle creation
  • Thinking semicolon is required for correctness
5. You want to create a function handle that takes two inputs and returns their product plus 5. Which of the following anonymous function definitions is correct?
hard
A. f = @(x y) x * y + 5;
B. f = @(x, y) x * y + 5;
C. f = @(x, y) (x + y) * 5;
D. f = @(x, y) x * y + 5()

Solution

  1. Step 1: Check the syntax for anonymous functions with multiple inputs

    Inputs must be separated by commas inside parentheses after @.
  2. Step 2: Verify the expression matches the requirement

    f = @(x, y) x * y + 5; multiplies x and y, then adds 5, which matches the problem. f = @(x y) x * y + 5; misses the comma, C changes the operation, and D has invalid syntax with 5().
  3. Final Answer:

    f = @(x, y) x * y + 5; -> Option B
  4. Quick Check:

    Use commas between inputs and correct expression [OK]
Hint: Separate inputs with commas and write correct formula [OK]
Common Mistakes:
  • Omitting commas between inputs
  • Changing the math operation accidentally
  • Adding parentheses after constants
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