Bird
Raised Fist0
MATLABdata~5 mins

String searching (contains, strfind) in MATLAB - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the contains function do in MATLAB?
The contains function checks if a string or array of strings contains a specified substring and returns a logical true or false.
Click to reveal answer
beginner
How does strfind differ from contains in MATLAB?
strfind returns the starting indices of the substring within the string, while contains returns a logical value indicating presence or absence.
Click to reveal answer
beginner
What is the output of strfind('hello world', 'o')?
It returns the indices where 'o' appears: [5 8].
Click to reveal answer
intermediate
Can contains handle arrays of strings in MATLAB?
Yes, contains can check each element of a string array or cell array of character vectors and return a logical array.
Click to reveal answer
beginner
What happens if strfind does not find the substring?
It returns an empty array [] indicating no matches.
Click to reveal answer
What does contains('apple', 'p') return?
Atrue
Bfalse
C[2 3]
D[]
What is the output of strfind('banana', 'na')?
A[3 5]
B[2 4]
C[4 6]
D[]
If strfind does not find the substring, what does it return?
A0
Bfalse
Cempty array []
DNaN
Which function returns a logical array when searching multiple strings?
Astrfind
Bcontains
Cfind
Dstrcmp
What is the difference between contains and strfind?
A<code>contains</code> returns indices, <code>strfind</code> returns logical
BBoth return logical arrays
CBoth return indices
D<code>contains</code> returns logical, <code>strfind</code> returns indices
Explain how to use contains to check if a substring exists in multiple strings.
Think about searching in a list of words.
You got /3 concepts.
    Describe what strfind returns and how it can be used to find substring positions.
    Imagine looking for where a word starts inside a sentence.
    You got /3 concepts.

      Practice

      (1/5)
      1. Which MATLAB function returns a logical true or false indicating if a substring exists within a string?
      easy
      A. contains
      B. strfind
      C. findstr
      D. substring

      Solution

      1. Step 1: Understand the purpose of contains

        contains returns true or false if a substring is found inside a string.
      2. Step 2: Compare with strfind

        strfind returns positions, not logical true/false.
      3. Final Answer:

        contains -> Option A
      4. Quick Check:

        Logical check for substring = contains [OK]
      Hint: Use contains for true/false substring check [OK]
      Common Mistakes:
      • Confusing strfind with contains
      • Thinking strfind returns true/false
      • Using findstr which is outdated
      2. Which of the following is the correct syntax to find the starting indices of substring 'cat' in string str = 'concatenate' using strfind?
      easy
      A. contains(str, 'cat')
      B. strfind('cat', str)
      C. strfind(str, 'cat')
      D. strfind(str, cat)

      Solution

      1. Step 1: Recall strfind syntax

        The first argument is the main string, second is the substring to find.
      2. Step 2: Check each option

        strfind(str, 'cat') correctly uses strfind(str, 'cat'). strfind('cat', str) reverses arguments. contains(str, 'cat') uses contains, not strfind. strfind(str, cat) misses quotes around 'cat'.
      3. Final Answer:

        strfind(str, 'cat') -> Option C
      4. Quick Check:

        strfind(mainString, substring) = strfind(str, 'cat') [OK]
      Hint: First argument main string, second substring in strfind [OK]
      Common Mistakes:
      • Swapping arguments in strfind
      • Forgetting quotes around substring
      • Using contains instead of strfind for indices
      3. What is the output of the following MATLAB code?
      str = 'abracadabra';
      pos = strfind(str, 'ra');
      disp(pos);
      medium
      A. [3 10]
      B. [2 9]
      C. [4 11]
      D. []

      Solution

      1. Step 1: Identify substring positions in 'abracadabra'

        Look for 'ra' in the string: 'abracadabra'. The substring 'ra' starts at index 3 and 10.
      2. Step 2: Confirm output of strfind

        strfind returns starting indices of matches, so output is [3 10].
      3. Final Answer:

        [3 10] -> Option A
      4. Quick Check:

        Positions of 'ra' = [3 10] [OK]
      Hint: Count string indices carefully for strfind output [OK]
      Common Mistakes:
      • Counting indices starting at 0 instead of 1
      • Confusing substring length with position
      • Expecting logical output instead of indices
      4. Identify the error in this MATLAB code snippet:
      str = 'hello world';
      pos = strfind('world', str);
      disp(pos);
      medium
      A. disp cannot display arrays
      B. Arguments of strfind are reversed
      C. strfind cannot search for 'world'
      D. Missing semicolon after strfind

      Solution

      1. Step 1: Check strfind argument order

        strfind expects the main string first, then the substring. Here, arguments are reversed.
      2. Step 2: Understand impact of reversed arguments

        Searching 'world' inside 'hello world' is correct, but reversed arguments cause wrong or empty output.
      3. Final Answer:

        Arguments of strfind are reversed -> Option B
      4. Quick Check:

        strfind(mainString, substring) correct order [OK]
      Hint: Main string first, substring second in strfind [OK]
      Common Mistakes:
      • Swapping arguments in strfind
      • Assuming disp can't show arrays
      • Thinking semicolon is mandatory for correctness
      5. You want to find all positions of the substring 'ana' in str = 'banana bandana' and check if it exists. Which code correctly does this?
      hard
      A. positions = strfind('ana', str); exists = contains('ana', str);
      B. positions = contains(str, 'ana'); exists = strfind(str, 'ana');
      C. positions = find(str, 'ana'); exists = contains(str, 'ana');
      D. positions = strfind(str, 'ana'); exists = contains(str, 'ana');

      Solution

      1. Step 1: Use strfind to get positions

        strfind(str, 'ana') returns all starting indices of 'ana' in the string.
      2. Step 2: Use contains to check existence

        contains(str, 'ana') returns true if 'ana' is found anywhere in str.
      3. Step 3: Verify options

        positions = strfind(str, 'ana'); exists = contains(str, 'ana'); correctly uses both functions. positions = contains(str, 'ana'); exists = strfind(str, 'ana'); swaps roles. positions = strfind('ana', str); exists = contains('ana', str); reverses arguments. positions = find(str, 'ana'); exists = contains(str, 'ana'); uses invalid function find for strings.
      4. Final Answer:

        positions = strfind(str, 'ana'); exists = contains(str, 'ana'); -> Option D
      5. Quick Check:

        Positions with strfind, existence with contains [OK]
      Hint: Use strfind for positions, contains for true/false [OK]
      Common Mistakes:
      • Swapping arguments in strfind or contains
      • Using find instead of strfind
      • Confusing output types of contains and strfind
      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