Open In App

Find Index of Cells Containing My String in MATLAB

Improve
Improve
Like Article
Like
Save
Share
Report

Cell Arrays in MATLAB are a type of array that store data in the form of cells. The benefit of using these cell arrays is that they can store data of different types as cells within a cell array only. In this article, we will see how to find a given string in a cell array.

Firstly, we shall check whether the given cell array contains all strings or not. This can be done by the following function:

iscellstr(<cell array>)

It will return 1 if it contains all strings else, 0. 

Example 1:

Matlab




% MATLAB array
arr = {'geeks','for','geeks','geek'}


Output:

 

As it can be seen that all elements of the above array contain all strings so, we shall move ahead. 

Now, we can find a string in two manners:

  1. Part of a string cell.
  2. Exact matches a string cell.

We shall see both these cases and how to do them.

Finding the Index of My String as Part of a Cell:

To find my string as pattern matching/part of the string, we can use the contains a () function which can then, be passed to the find() function to get the indices.

Syntax:

indices = find(contain(array,string))

Example 2:

Matlab




% MATLAB Array code
arr = {'geeks','for','geeks','geek'};   
 
% Converting to cell array
arr=cell(arr);   
 
%The string to be matches
str='gee';   
 
% Getting indices
indices = find(contains(arr,str))


Output:

 

As it can be verified that the string ‘gee’ appears in cells 1, 3, and 4.

Finding an Index of My String as an Exact Cell:

To find exact match of my string we shall use the strcmp() function which returns a logical array for exact matches. Then by passing it to the find() function, we shall get the indices of my string’s exact match.

str_logical = strcmp(array,my_string)

indices = find(str_logical)

See the following code for understanding the same.

Example 3:

Matlab




% MATLAB code for Finding an index of
% my string as an exact cell
% cell array
arr = {'geeks','for','geeks','geek'};
arr=cell(arr);
 
% Defining two strings for comparison
str1='geek';
str2='geeks';
 
% Making logical arrays for both strings
str1_log = strcmp(arr,str1);
str2_log = strcmp(arr,str2);
 
% Finding indices of exact match of both strings
indices_str1 = find(str1_log);
indices_str2 = find(str2_log);


Output:

 

As we can see, it matched the ‘geek’ string only to its exact match and not to ‘geeks’.



Last Updated : 26 Nov, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads