Bird
Raised Fist0
MATLABdata~10 mins

String comparison in MATLAB - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to compare two strings for equality.

MATLAB
result = strcmp(str1, [1]);
Drag options to blanks, or click blank then click option'
Astr1
Bstr2
Cstring2
Dtext
Attempts:
3 left
💡 Hint
Common Mistakes
Using the same variable twice like strcmp(str1, str1) which always returns true.
Using a variable name that does not exist.
2fill in blank
medium

Complete the code to check if the variable inputStr matches the word 'hello'.

MATLAB
isMatch = strcmp([1], 'hello');
Drag options to blanks, or click blank then click option'
AinputStr
Btext
Cgreeting
Dword
Attempts:
3 left
💡 Hint
Common Mistakes
Using a string literal instead of the variable.
Mixing up the order of arguments (though strcmp is symmetric).
3fill in blank
hard

Fix the error in the code to correctly compare two strings a and b.

MATLAB
if [1](a, b)
    disp('Strings are equal');
else
    disp('Strings are different');
end
Drag options to blanks, or click blank then click option'
Astrcmp
Bstrcmps
Cisequal
Dstrcmpi
Attempts:
3 left
💡 Hint
Common Mistakes
Using a non-existent function like strcmps.
Using strcmpi when case sensitivity matters.
4fill in blank
hard

Fill both blanks to create a dictionary (containers.Map) that maps words to their lengths, but only include words longer than 3 characters.

MATLAB
words = {'apple', 'cat', 'banana', 'dog'};
lengths = containers.Map([1], [2]);

function keys = getKeys(words)
    keys = {};
    for i = 1:length(words)
        if length(words{i}) > 3
            keys{end+1} = words{i};
        end
    end
end

function values = getValues(words)
    values = [];
    for i = 1:length(words)
        if length(words{i}) > 3
            values(end+1) = length(words{i});
        end
    end
end

keys = getKeys(words);
values = getValues(words);
Drag options to blanks, or click blank then click option'
Akeys
Bwords
Cvalues
Dlengths
Attempts:
3 left
💡 Hint
Common Mistakes
Using the original words list without filtering.
Swapping keys and values in the constructor.
5fill in blank
hard

Fill all three blanks to create a logical array that marks which strings in listStr start with the letter 'a' (case insensitive).

MATLAB
listStr = {'apple', 'Banana', 'avocado', 'Cherry'};
startsWithA = arrayfun(@(x) [1](x, '[3]', [2]), listStr);
Drag options to blanks, or click blank then click option'
Astrncmpi
B1
Ca
Dstrcmp
Attempts:
3 left
💡 Hint
Common Mistakes
Using strcmp which compares whole strings.
Using strncmp which is case sensitive.

Practice

(1/5)
1. Which MATLAB function is used to compare two strings with case sensitivity?
easy
A. strcmpi
B. strcmp
C. strcomp
D. strcompare

Solution

  1. Step 1: Understand string comparison functions

    MATLAB provides strcmp for case-sensitive string comparison and strcmpi for case-insensitive comparison.
  2. Step 2: Identify the correct function for case-sensitive comparison

    strcmp compares strings exactly, including letter case, so it is the correct choice.
  3. Final Answer:

    strcmp -> Option B
  4. Quick Check:

    Case-sensitive comparison = strcmp [OK]
Hint: Use strcmp for exact case-sensitive string checks [OK]
Common Mistakes:
  • Confusing strcmp with strcmpi
  • Using non-existent functions like strcomp
  • Assuming strcmpi is case-sensitive
2. Which of the following is the correct syntax to compare two strings s1 and s2 ignoring case in MATLAB?
easy
A. strcmpi(s1 == s2)
B. strcmp(s1, s2)
C. strcmpi(s1, s2)
D. strcmp(s1 == s2)

Solution

  1. Step 1: Recall syntax for case-insensitive comparison

    strcmpi compares two strings ignoring case and takes two string inputs as separate arguments.
  2. Step 2: Identify correct syntax

    strcmpi(s1, s2) uses strcmpi with two string arguments correctly. Options C and D incorrectly use '==' inside the function, which is invalid.
  3. Final Answer:

    strcmpi(s1, s2) -> Option C
  4. Quick Check:

    Case-insensitive syntax = strcmpi(s1, s2) [OK]
Hint: Use strcmpi(s1, s2) for ignoring case in string comparison [OK]
Common Mistakes:
  • Using '==' inside strcmp or strcmpi
  • Mixing up strcmp and strcmpi
  • Passing strings as one argument with '=='
3. What is the output of the following MATLAB code?
s1 = "Hello";
s2 = "hello";
result = strcmp(s1, s2);
disp(result);
medium
A. "true"
B. 1
C. Error
D. 0

Solution

  1. Step 1: Understand strcmp behavior

    strcmp compares strings with case sensitivity. "Hello" and "hello" differ in case.
  2. Step 2: Evaluate strcmp result

    Since the strings differ in case, strcmp returns logical 0 (false), which disp prints as 0.
  3. Final Answer:

    0 -> Option D
  4. Quick Check:

    Case-sensitive mismatch = 0 [OK]
Hint: strcmp returns 0 if cases differ exactly [OK]
Common Mistakes:
  • Assuming strcmp ignores case
  • Expecting output '1' for different case
  • Confusing output with string 'true'
4. Identify the error in this MATLAB code snippet for case-insensitive string comparison:
s1 = "Test";
s2 = "test";
if strcmpi(s1 == s2)
disp('Match');
end
medium
A. Using '==' inside strcmpi causes an error
B. Missing semicolon after disp statement
C. strcmpi cannot compare strings
D. Strings must be converted to char arrays first

Solution

  1. Step 1: Analyze the use of '==' inside strcmpi

    The expression s1 == s2 compares strings element-wise, returning a logical array, not a string.
  2. Step 2: Understand strcmpi input requirements

    strcmpi expects two string inputs, not a logical array. Using '==' inside causes a syntax or runtime error.
  3. Final Answer:

    Using '==' inside strcmpi causes an error -> Option A
  4. Quick Check:

    strcmpi needs strings, not logical arrays [OK]
Hint: Do not use '==' inside strcmpi; pass strings directly [OK]
Common Mistakes:
  • Using '==' inside strcmpi
  • Thinking strcmpi compares logical arrays
  • Ignoring input type requirements
5. You want to compare two cell arrays of strings C1 = {'Apple', 'Banana', 'Cherry'} and C2 = {'apple', 'banana', 'cherry'} ignoring case. Which MATLAB code correctly returns a logical array indicating matches?
hard
A. cellfun(@strcmpi, C1, C2)
B. strcmpi(C1{:}, C2{:})
C. cellfun(@strcmp, C1, C2)
D. strcmp(C1, C2)

Solution

  1. Step 1: Understand cell array string comparison

    To compare each pair of strings in cell arrays element-wise, use cellfun with a comparison function.
  2. Step 2: Choose case-insensitive comparison

    strcmpi ignores case, so cellfun(@strcmpi, C1, C2) applies it element-wise correctly.
  3. Step 3: Why other options fail

    cellfun(@strcmp, C1, C2) uses case-sensitive strcmp. strcmpi(C1{:}, C2{:}) unpacks cells into multiple arguments, causing a "too many input arguments" error. strcmp(C1, C2) is case-sensitive.
  4. Final Answer:

    cellfun(@strcmpi, C1, C2) -> Option A
  5. Quick Check:

    Use cellfun with strcmpi for cell array case-insensitive comparison [OK]
Hint: Use cellfun(@strcmpi, C1, C2) for cell array case-insensitive compare [OK]
Common Mistakes:
  • Using strcmp instead of strcmpi for ignoring case
  • Unpacking cell arrays with strcmpi(C1{:}, C2{:})
  • Not using cellfun for element-wise comparison
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard