Variable creation and assignment in MATLAB - Time & Space Complexity
We want to see how long it takes to create and assign variables in MATLAB as the input size changes.
How does the time needed grow when we make more variables or bigger ones?
Analyze the time complexity of the following code snippet.
n = 1000;
A = zeros(1, n);
for i = 1:n
A(i) = i;
end
This code creates an array of size n and assigns values to each element one by one.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: Assigning a value to each element of the array inside the loop.
- How many times: The loop runs n times, so the assignment happens n times.
As n grows, the number of assignments grows the same way.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | 10 assignments |
| 100 | 100 assignments |
| 1000 | 1000 assignments |
Pattern observation: The work grows directly with n; doubling n doubles the work.
Time Complexity: O(n)
This means the time to create and assign values grows in a straight line as the number of elements increases.
[X] Wrong: "Creating and assigning variables always takes the same time no matter how big the data is."
[OK] Correct: Actually, when you assign many values, the time grows with how many values you assign, so bigger arrays take more time.
Understanding how simple operations like variable assignment scale helps you explain code efficiency clearly and confidently.
"What if we replaced the for-loop with a vectorized assignment like A = 1:n; How would the time complexity change?"
Practice
What does the following MATLAB code do?x = 10;
Solution
Step 1: Understand variable assignment syntax
The code uses=to assign a value to a variable.Step 2: Identify the variable and value
Variablexis assigned the value10.Final Answer:
Creates a variable named x and assigns it the value 10 -> Option AQuick Check:
Variable assignment = Creates variable with value [OK]
- Thinking '=' prints output
- Confusing variable creation with function definition
- Missing semicolon means output prints but variable still created
Which of the following is the correct way to assign the value 5 to variable a in MATLAB?
Solution
Step 1: Recall MATLAB assignment operator
MATLAB uses=to assign values to variables.Step 2: Check each option
a = 5; usesa = 5;which is correct syntax.Final Answer:
a = 5; -> Option BQuick Check:
Assignment uses '=' in MATLAB [OK]
- Using '==' which is a comparison, not assignment
- Trying to assign value to a number (5 = a)
- Using ':=' which is not MATLAB syntax
What is the value of variable y after running this code?
y = 3; y = y + 4;
Solution
Step 1: Assign initial value to y
Variableyis first set to 3.Step 2: Add 4 to current value of y
New value is 3 + 4 = 7.Final Answer:
7 -> Option AQuick Check:
3 + 4 = 7 [OK]
- Thinking y stays 3 after addition
- Confusing assignment with comparison
- Expecting syntax error due to reuse of variable
Identify the error in this MATLAB code:
1var = 10;
Solution
Step 1: Check variable naming rules
MATLAB variable names must start with a letter, not a number.Step 2: Analyze given variable name
Variable name1varstarts with '1', which is invalid.Final Answer:
Variable names cannot start with a number -> Option DQuick Check:
Variable names start with letters [OK]
- Thinking semicolon is mandatory for syntax
- Confusing assignment operator '=' with '=='
- Assuming numbers can start variable names
You want to create two variables a and b where a is 5 and b is twice a. Which code correctly does this?
a = 5; b = 2 * a;
Solution
Step 1: Assign value 5 to variable a
Codea = 5;correctly assigns 5 toa.Step 2: Assign b as twice a
Codeb = 2 * a;correctly calculates twice the value ofa.Final Answer:
a = 5; b = 2 * a; -> Option CQuick Check:
b = 2 * a means b is double a [OK]
- Adding instead of multiplying for double
- Dividing instead of multiplying
- Multiplying variable by itself instead of 2
Ready to prove it?
Pass the test and this pattern moves unknown
