16.2: Comparing Character Strings

Matlab and Octave Programming for STEM Applications · LibreTexts

0%

Contents

    Text

    Size
    100%
    Theme
    Typeface
    Line length
    Spacing

    From LibreTexts, under CC BY-NC-SA 4.0, as the source states it; its equations are written in TeX, which the PDF shows typeset. This page at LibreTexts.

    16.2: Comparing Character Strings

    Comparing strings is different than comparing numbering. Comparing strings requires specific functions. In this section, tf is a logical variable meaning true or false.

    Consider two character string variables. Two common string comparison functions are:

    tf = strcmp(str1, str2); % case sensitive
    tf = strcmpi(str1, str2); % case insensitive

    These functions look for a match between strings of the same length. The user can specify to compare just the first n characters.

    Study the attached file: String_compare_demo.m

    Exercise \(\PageIndex{1}\) Compare names

    Create a Matlab script that does the following:
    %% A. [1 pt] Create this array of names:
    names = ['Alex';
    'Gabe';
    'Joan';
    'John';
    'Mary';
    'Pete';
    'Rosa';
    'Tina']

    %% B. [1 pt] Ask the user to enter a 4-letter name with this code:
    name_in = input('Enter a 4-letter name: ','s');

    %% C. [1 pt] Use length() to determine the length of the names array.

    %% D. [5 pts] Write a for loop with loop index k to search for match of name_in
    % to one of those in the names list. Use the following to find the match:

    tf = strcmpi(name_in, names(k,:)); % case insensitive comparison

    % When a match is found, display the index of that name in the list and break the loop
    % Use disp() with num2str() to display the index with this code:
    disp([name_in,' is number ',num2str(k),' in the list.'])

    Extra Credit (2 pts) If a name is entered that is not in the list, figure out a way to send a message that the name is not in the list.

    Are are 2 possible strategies:

    Strategy A. Set a variable called valid_name = 0 before the loop.

    Inside the loop, when a match is found, set valid_name = 1.

    After the loop, if valid_name == 0, display a message that the name was not found.

    Strategy B. Add an invalid name to the list, such as 'xxxx'. So, the length of the array will be 1 more than the number of valid names.

    After the loop, if the loop index == the length of the array, than display a message that the name was not found.

    Answer

    The answer is not shown here.

    Other string functions are:

    tf = strncmp(s1,s2,n): Compare first n characters of strings (case sensitive)

    tf = strncmpi(s1,s2,n): Compare first n characters of strings (case insensitive)

    tf = strfind(str,pat): Find strings within other strings

    .


    This page titled 16.2: Comparing Character Strings was last modified on Thu, 28 Jul 2022 16:45:55 GMT and is shared under a CC BY-NC-SA 4.0 license and was authored, remixed, and/or curated by Carey Smith.