Character arrays and strings in MATLAB - Time & Space Complexity
When working with character arrays and strings in MATLAB, it is important to understand how the time to process them grows as the string gets longer.
We want to know how the number of steps changes when we do operations like copying or searching in strings.
Analyze the time complexity of the following code snippet.
str = 'hello world';
newStr = '';
for i = 1:length(str)
newStr(i) = str(i);
end
This code copies each character from one string to another using a loop.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: Copying one character from the original string to the new string inside the loop.
- How many times: The loop runs once for each character in the string, so it repeats n times where n is the string length.
As the string gets longer, the number of copy steps grows directly with the number of characters.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | 10 copy steps |
| 100 | 100 copy steps |
| 1000 | 1000 copy steps |
Pattern observation: The work grows in a straight line with the string length.
Time Complexity: O(n)
This means the time to copy the string grows directly in proportion to its length.
[X] Wrong: "Copying a string takes the same time no matter how long it is."
[OK] Correct: Each character must be copied one by one, so longer strings take more time.
Understanding how string operations scale helps you write efficient code and explain your reasoning clearly in interviews.
"What if we used MATLAB's built-in string copy function instead of a loop? How would the time complexity change?"
Practice
Solution
Step 1: Understand character array syntax
Character arrays in MATLAB use single quotes to enclose text.Step 2: Check each option
name = 'Hello'; uses single quotes correctly. name = "Hello"; uses double quotes which create string objects, not character arrays. Options A and D are invalid syntax.Final Answer:
name = 'Hello'; -> Option CQuick Check:
Single quotes create character arrays [OK]
- Using double quotes for character arrays
- Missing quotes around text
- Using brackets or parentheses incorrectly
Solution
Step 1: Recall string creation syntax
Strings in MATLAB are created using double quotes.Step 2: Evaluate options
str = "MATLAB"; uses double quotes correctly. str = 'MATLAB'; creates a character array, not a string. Options C and D use invalid or different data types.Final Answer:
str = "MATLAB"; -> Option AQuick Check:
Double quotes create strings [OK]
- Confusing single and double quotes
- Using curly braces which create cell arrays
- Using parentheses incorrectly
charArray = 'abc'; str = "def"; disp([charArray str])
Solution
Step 1: Understand concatenation of char arrays and strings
In MATLAB, concatenating a character array and a string with [] converts the string to a char array and joins them.Step 2: Evaluate the concatenation result
Concatenating 'abc' and "def" results in 'abcdef' as a character array, displayed without spaces.Final Answer:
abcdef -> Option AQuick Check:
Concatenation joins text without spaces [OK]
- Expecting spaces between concatenated strings
- Thinking concatenation causes error
- Confusing display output with variable type
str1 = 'Hello'; str2 = "World"; result = strcat(str1, str2);
Solution
Step 1: Understand strcat behavior
strcat can concatenate character arrays and strings by automatically converting strings to character arrays.Step 2: Verify the code
str1 is a character array, str2 is a string, but strcat(str1, str2) returns 'HelloWorld' as a character array. No error occurs.Final Answer:
No error, code runs correctly -> Option BQuick Check:
strcat handles mixed types [OK]
- Assuming strcat requires matching types
- Confusing with + operator which doesn't work for mixed types
- Looking for syntax errors where none exist
chars = 'MATLAB' and want to convert it to a string and append " is fun". Which code correctly does this?Solution
Step 1: Convert character array to string
Use string(chars) to convert the character array to a string type.Step 2: Append text using + operator
Strings can be concatenated with + and another string, so adding " is fun" works.Step 3: Check other options
newStr = chars + ' is fun'; tries to add char array and char array with + which is invalid. newStr = strcat(chars, " is fun"); mixes types but produces a character array, not a string. newStr = chars + " is fun"; adds char array and string with + which errors.Final Answer:
newStr = string(chars) + " is fun"; -> Option DQuick Check:
Convert char to string, then use + to join [OK]
- Using + to add char arrays
- Mixing char arrays and strings in strcat
- Not converting char array before concatenation
Ready to prove it?
Pass the test and this pattern moves unknown
