String concatenation in MATLAB - Time & Space Complexity
When we join strings together in MATLAB, the time it takes can change depending on how many strings we combine.
We want to understand how the work grows as we add more strings.
Analyze the time complexity of the following code snippet.
result = "";
for i = 1:n
result = [result, 'a'];
end
This code adds the letter 'a' to a string repeatedly, n times.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: Concatenating the current string with a new character inside the loop.
- How many times: The loop runs n times, and each time concatenation happens.
Each time we add a character, MATLAB creates a new string by copying the old one and adding the new character.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | About 55 (1+2+...+10) |
| 100 | About 5050 |
| 1000 | About 500500 |
Pattern observation: The work grows roughly like the square of n because each new string is longer than before.
Time Complexity: O(n^2)
This means the time to join strings grows much faster than the number of strings; doubling n makes the work about four times bigger.
[X] Wrong: "Adding one character each time takes the same time no matter how long the string is."
[OK] Correct: Each time MATLAB copies the whole existing string to add a new character, so longer strings take more time to copy.
Understanding how string joining grows helps you write faster code and explain your choices clearly in real projects or interviews.
"What if we used a cell array to collect characters first and joined them once at the end? How would the time complexity change?"
Practice
'Hello' and 'World' in MATLAB?Solution
Step 1: Understand MATLAB string concatenation syntax
In MATLAB, square brackets [ ] are used to join strings or character arrays.Step 2: Apply concatenation to given strings
Using ['Hello' 'World'] joins the two strings into 'HelloWorld'. Other options use incorrect syntax.Final Answer:
['Hello' 'World'] -> Option AQuick Check:
Use [ ] to join strings in MATLAB [OK]
- Using + operator for strings
- Using functions not defined in MATLAB
- Using & operator which is invalid for strings
'Data' and '123'?Solution
Step 1: Check syntax for string concatenation
In MATLAB, concatenation uses square brackets [ ] for character arrays or strings.Step 2: Evaluate each option
str = ['Data' '123']; uses ['Data' '123'] which correctly joins the two strings. str = 'Data' + '123'; uses + which is invalid. str = strcat('Data', 123); uses strcat but passes a number without converting it to string. str = 'Data' & '123'; uses & which is invalid.Final Answer:
str = ['Data' '123']; -> Option CQuick Check:
Concatenate strings with [ ] brackets [OK]
- Using + operator for strings
- Passing numbers directly to strcat without conversion
- Using & operator for concatenation
str1 = 'Good';
str2 = 'Morning';
result = [str1 ' ' str2];
disp(result);
Solution
Step 1: Analyze the concatenation expression
The code concatenates str1, a space character ' ', and str2 using square brackets.Step 2: Understand the output of disp
The result is 'Good Morning' with a space between the words, so disp prints it exactly as 'Good Morning'.Final Answer:
Good Morning -> Option AQuick Check:
Concatenate with space inside [ ] to separate words [OK]
- Forgetting to add space character
- Using + operator instead of [ ]
- Expecting underscore instead of space
'Hi' and 'There' but causes an error. What is the error and how to fix it?str1 = 'Hi';
str2 = 'There';
result = str1 + str2;
disp(result);
Solution
Step 1: Identify the cause of error
Using + operator between strings in MATLAB causes an error because + is not defined for character arrays.Step 2: Correct the concatenation method
Replace + with square brackets [ ] to join strings: result = [str1 str2];Final Answer:
Error: Use square brackets [ ] instead of + for concatenation -> Option DQuick Check:
Concatenate strings with [ ], not + [OK]
- Using + operator for strings
- Trying to use & operator
- Assuming strcat always fixes + errors
'User: John, Age: 30' by concatenating variables name = 'John' and age = 30. Which code correctly creates this message?Solution
Step 1: Understand variable types and concatenation
name is a string, age is a number. To concatenate, age must be converted to string using num2str.Step 2: Check each option for correctness
msg = ['User: ' name ', Age: ' num2str(age)]; uses [ ] and num2str(age) correctly. msg = ['User: ' name ', Age: ' age]; tries to concatenate number directly causing error. msg = strcat('User: ', name, ', Age: ', age); uses strcat but passes number without conversion. msg = ['User: ' + name + ', Age: ' + string(age)]; uses + operator which is invalid.Final Answer:
msg = ['User: ' name ', Age: ' num2str(age)]; -> Option BQuick Check:
Convert numbers to strings before concatenation [OK]
- Concatenating numbers without conversion
- Using + operator for strings
- Passing numbers directly to strcat
Ready to prove it?
Pass the test and this pattern moves unknown
