📖 Scenario: You are working on a simple calculator program in MATLAB. You want to organize your code by using local functions inside a main script to perform addition and multiplication.
🎯 Goal: Build a MATLAB script that uses local functions to add and multiply two numbers, then display the results.
📋 What You'll Learn
Create two variables a and b with exact values 5 and 3
Create a local function called addNumbers that takes two inputs and returns their sum
Create a local function called multiplyNumbers that takes two inputs and returns their product
Call both local functions with a and b and store the results
Display the sum and product using disp
💡 Why This Matters
🌍 Real World
Local functions are useful in MATLAB for organizing code in scripts, especially for small projects or when you want to keep related functions together.
💼 Career
Understanding local functions is important for MATLAB programming jobs in engineering, data analysis, and scientific research where modular and readable code is valued.
Progress0 / 4 steps
1
Create variables a and b
Create two variables called a and b and set them to 5 and 3 respectively.
MATLAB
Hint
Use the assignment operator = to set the values.
2
Create local function addNumbers
Create a local function called addNumbers that takes two inputs x and y and returns their sum as output result.
MATLAB
Hint
Use the function keyword to define a local function inside the script.
3
Create local function multiplyNumbers
Create a local function called multiplyNumbers that takes two inputs x and y and returns their product as output result.
MATLAB
Hint
Define the second local function similarly to the first, but use multiplication.
4
Call local functions and display results
Call the local functions addNumbers and multiplyNumbers with inputs a and b. Store the results in variables sumResult and productResult. Then use disp to display the sum and product with the exact text: 'Sum: ' followed by the sum, and 'Product: ' followed by the product.
MATLAB
Hint
Use num2str to convert numbers to strings for display.
Practice
(1/5)
1. What is a key characteristic of a local function in MATLAB?
easy
A. It automatically runs when MATLAB starts.
B. It must be saved in a separate file with the same name.
C. It can only be called from the command window.
D. It is defined inside the same file as the main function or script.
Solution
Step 1: Understand local function placement
Local functions are defined inside the same file as the main function or script, not separately.
Step 2: Compare with other options
Options A, B, and C describe behaviors that do not match local functions in MATLAB.
Final Answer:
It is defined inside the same file as the main function or script. -> Option D
Quick Check:
Local function location = same file [OK]
Hint: Local functions live inside the main file, not separate files. [OK]
Common Mistakes:
Thinking local functions need separate files
Believing local functions run automatically
Assuming local functions can only be called from command window
2. Which of the following is the correct way to define a local function inside a MATLAB script file?
easy
A. def localFunc(x):
return x^2
B. localFunc(x) = x^2;
C. function y = localFunc(x)
y = x^2;
end
D. function y = localFunc(x)
y = x^2;
Solution
Step 1: Identify MATLAB function syntax
MATLAB local functions start with the keyword function, followed by output, name, and input, and end with end.
Step 2: Check each option
function y = localFunc(x)
y = x^2;
end uses correct MATLAB syntax with function and end. def localFunc(x):
return x^2 is Python syntax. localFunc(x) = x^2; is invalid MATLAB syntax. function y = localFunc(x)
y = x^2; misses the end keyword.
Final Answer:
function y = localFunc(x)
y = x^2;
end -> Option C
Quick Check:
MATLAB function syntax = function y = localFunc(x)
y = x^2;
end [OK]
Hint: MATLAB functions need 'function' and 'end' keywords. [OK]
Common Mistakes:
Omitting the 'end' keyword
Using Python or other language syntax
Trying to assign function like a variable
3. Consider this MATLAB code in a file named mainFile.m:
function result = mainFile(x)
result = squarePlusOne(x);
function y = squarePlusOne(n)
y = n^2 + 1;
end
end
What is the return value of mainFile(3)?
medium
A. 10
B. 9
C. 7
D. Error: undefined function
Solution
Step 1: Understand the local function call
The main function calls squarePlusOne(3). The local function computes 3^2 + 1 = 9 + 1 = 10.
Step 2: Confirm output assignment
The result from the local function is assigned to result, which is returned by mainFile. So mainFile(3) returns 10.
Final Answer:
10 -> Option A
Quick Check:
3 squared plus 1 = 10 [OK]
Hint: Calculate local function output then return it. [OK]
Common Mistakes:
Forgetting to add 1 after squaring
Thinking local functions are inaccessible
Confusing variable names
4. This MATLAB script contains a local function:
function output = calc(x)
output = doubleValue(x);
function y = doubleValue(n)
y = n * 2
end
result = calc(5);
What is the error in this code?
medium
A. Missing semicolon after y = n * 2 in local function
B. Missing end keyword for the main function calc
C. Local function doubleValue is not accessible inside calc
D. Local functions cannot return values
Solution
Step 1: Check function endings
The local function doubleValue has an end, but the main function calc does not have its own end keyword.
Step 2: Verify MATLAB syntax rules
Each function in MATLAB must end with end. Missing end for calc causes a syntax error.
Final Answer:
Missing end keyword for the main function calc -> Option B
Quick Check:
Every function needs 'end' [OK]
Hint: Count 'end' keywords: one per function needed. [OK]
Common Mistakes:
Assuming semicolon omission causes error
Thinking local functions are inaccessible
Believing local functions can't return values
5. You want to write a MATLAB function that computes the factorial of a number using a local helper function to multiply numbers recursively. Which of the following code snippets correctly uses a local function for this purpose?
hard
A. function f = factorialMain(n)
f = helper(n);
function val = helper(k)
if k <= 1
val = 1;
else
val = k * helper(k-1);
end
end
end
B. function f = factorialMain(n)
f = helper(n);
end
function val = helper(k)
if k <= 1
val = 1;
else
val = k * helper(k-1);
end
C. function f = factorialMain(n)
f = factorial(n);
function val = helper(k)
val = k * helper(k-1);
end
end
D. function f = factorialMain(n)
f = n * factorialMain(n-1);
end
Solution
Step 1: Identify correct local function usage
function f = factorialMain(n)
f = helper(n);
function val = helper(k)
if k <= 1
val = 1;
else
val = k * helper(k-1);
end
end
end defines the local function helper inside factorialMain and uses recursion properly with base case.
Step 2: Check other options for errors
function f = factorialMain(n)
f = helper(n);
end
function val = helper(k)
if k <= 1
val = 1;
else
val = k * helper(k-1);
end
defines helper outside main function (not local). function f = factorialMain(n)
f = factorial(n);
function val = helper(k)
val = k * helper(k-1);
end
end calls factorial (built-in) and has incomplete helper. function f = factorialMain(n)
f = n * factorialMain(n-1);
end is a recursive main function but lacks base case and local function.
Final Answer:
function f = factorialMain(n)
f = helper(n);
function val = helper(k)
if k <= 1
val = 1;
else
val = k * helper(k-1);
end
end
end -> Option A
Quick Check:
Local recursive helper inside main function = function f = factorialMain(n)
f = helper(n);
function val = helper(k)
if k <= 1
val = 1;
else
val = k * helper(k-1);
end
end
end [OK]
Hint: Local functions go inside main function with 'function' and 'end'. [OK]
Common Mistakes:
Defining helper function outside main function
Missing base case in recursion
Calling built-in factorial instead of local helper
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.