📖 Scenario: Imagine you are analyzing sales data for a small store. You want to write a MATLAB function that calculates both the total sales and the average sale amount from a list of sales.
🎯 Goal: Create a MATLAB function that takes a list of sales amounts and returns two outputs: the total sales and the average sale amount.
📋 What You'll Learn
Create a vector called sales with the exact values: 100, 200, 150, 300, 250
Create a variable called numSales that stores the number of sales
Write a function called calculateSales that takes sales as input and returns two outputs: totalSales and averageSale
Call the function calculateSales with sales and store the outputs in variables total and average
Print the values of total and average
💡 Why This Matters
🌍 Real World
Stores and businesses often analyze sales data to understand total revenue and average purchase size, helping them make better decisions.
💼 Career
Data analysts and scientists frequently write functions that return multiple results to summarize data efficiently.
Progress0 / 4 steps
1
Create the sales data vector
Create a vector called sales with the exact values: 100, 200, 150, 300, 250
MATLAB
Hint
Use square brackets [] to create a vector with the given numbers separated by commas.
2
Create a variable for the number of sales
Create a variable called numSales that stores the number of sales in the sales vector using the length function
MATLAB
Hint
Use length(sales) to find how many elements are in the vector.
3
Write the function to calculate total and average sales
Write a function called calculateSales that takes sales as input and returns two outputs: totalSales and averageSale. Use the sum function to calculate total sales and divide by length(sales) for average sale.
MATLAB
Hint
Define the function with two outputs in square brackets. Use sum to add all sales and divide by length(sales) for average.
4
Call the function and display the results
Call the function calculateSales with the sales vector and store the outputs in variables total and average. Then print both values using disp.
MATLAB
Hint
Use square brackets to capture two outputs from the function. Use disp and num2str to print the numbers as text.
Practice
(1/5)
1. In MATLAB, how do you define a function that returns multiple outputs?
easy
A. Separate output variables with commas without brackets.
B. Use square brackets around output variables in the function definition.
C. Use parentheses around output variables in the function definition.
D. Define each output in a separate function.
Solution
Step 1: Understand MATLAB function output syntax
MATLAB requires multiple outputs to be enclosed in square brackets in the function definition. Only Use square brackets around output variables in the function definition. correctly uses square brackets; others are invalid syntax or incorrect approach.
Final Answer:
Use square brackets around output variables in the function definition. -> Option B
Quick Check:
Multiple outputs = square brackets [OK]
Hint: Remember: multiple outputs always use square brackets [OK]
Common Mistakes:
Using parentheses instead of square brackets
Listing outputs without any brackets
Trying to define outputs in separate functions
2. Which of the following is the correct syntax to call a MATLAB function myFunc that returns two outputs?
easy
A. [a, b] = myFunc(x);
B. a, b = myFunc(x);
C. (a, b) = myFunc(x);
D. a = myFunc(x); b = myFunc(x);
Solution
Step 1: Recall MATLAB function call syntax for multiple outputs
Multiple outputs must be captured using square brackets on the left side of the assignment. [a, b] = myFunc(x); uses correct square brackets; B and C use invalid syntax; A calls function twice, not multiple outputs.
Final Answer:
[a, b] = myFunc(x); -> Option A
Quick Check:
Multiple outputs call = square brackets [OK]
Hint: Use square brackets to capture multiple outputs when calling [OK]
Common Mistakes:
Using parentheses or commas without brackets
Calling function multiple times instead of one call
Missing brackets around output variables
3. What is the output of this MATLAB code?
function [sumVal, diffVal] = calc(a, b)
sumVal = a + b;
diffVal = a - b;
end
[x, y] = calc(5, 3);
What are the values of x and y?
medium
A. x = 5, y = 3
B. x = 2, y = 8
C. x = 8, y = 2
D. x = 15, y = 2
Solution
Step 1: Trace function execution and match outputs
The function returns sumVal = a + b = 5 + 3 = 8 and diffVal = a - b = 5 - 3 = 2. x receives sumVal (8), y receives diffVal (2).
Final Answer:
x = 8, y = 2 -> Option C
Quick Check:
sum = 8, diff = 2 [OK]
Hint: First output = sum, second output = difference [OK]
Common Mistakes:
Swapping order of outputs
Confusing inputs with outputs
Adding instead of subtracting for difference
4. Identify the error in this MATLAB function that tries to return two outputs:
function [a, b] = wrongFunc(x)
a = x * 2;
b = x + 3
end
medium
A. Square brackets not allowed in output
B. Function must return only one output
C. Function name does not match file name
D. Missing semicolon after assigning b
Solution
Step 1: Check syntax line by line
Line assigning b lacks a semicolon, causing output to print unexpectedly. Multiple outputs with square brackets are allowed; function name matching file is good practice but not error here.
Final Answer:
Missing semicolon after assigning b -> Option D
Quick Check:
Missing semicolon = syntax error [OK]
Hint: Always end statements with semicolon to avoid output [OK]
Common Mistakes:
Ignoring missing semicolons
Thinking multiple outputs are not allowed
Confusing function name and file name mismatch as error
5. You want to write a MATLAB function stats that takes a vector and returns three outputs: the mean, median, and standard deviation. Which function header and call are correct?
hard
A. Function: function [m, med, s] = stats(v) Call: [meanVal, medianVal, stdVal] = stats(data);
B. Function: function (m, med, s) = stats(v) Call: (meanVal, medianVal, stdVal) = stats(data);
C. Function: function m, med, s = stats(v) Call: meanVal, medianVal, stdVal = stats(data);
D. Function: function stats(v) returns m, med, s Call: stats(data)
Solution
Step 1: Verify function header and call syntax
Multiple outputs must use square brackets in the function header: function [m, med, s] = stats(v) and in the call: [meanVal, medianVal, stdVal] = stats(data);. Others use invalid parentheses, commas without brackets, or incorrect formats.
Final Answer:
Function and call with square brackets for multiple outputs -> Option A
Quick Check:
Multiple outputs = square brackets in header and call [OK]
Hint: Use square brackets for multiple outputs in both function and call [OK]
Common Mistakes:
Using parentheses instead of square brackets
Not capturing all outputs in call
Incorrect function header syntax
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.