在MATLAB中查找包含我的字符串的单元格的索引

在MATLAB中查找包含我的字符串的单元格的索引

MATLAB中的单元格阵列是一种以单元格形式存储数据的阵列。使用这些单元格数组的好处是,它们可以将不同类型的数据仅作为单元格存储在单元格数组中。在这篇文章中,我们将看到如何在一个单元格数组中找到一个给定的字符串。

首先,我们将检查给定的单元格数组是否包含所有字符串。这可以通过以下函数来完成。

iscellstr(<cell array>)

如果它包含所有的字符串,它将返回1,否则,返回0。

示例 1:

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

输出:

在MATLAB中查找包含我的字符串的单元格的索引

可以看出,上述数组的所有元素都包含所有的字符串,因此,我们将继续前进。

现在,我们可以通过两种方式找到一个字符串。

1.弦细胞的一部分。
2.完全匹配一个字符串单元。

我们将看到这两种情况以及如何做到这一点。

寻找作为单元格一部分的我的字符串的索引。

为了找到我的字符串作为模式匹配/字符串的一部分,我们可以使用包含()函数,然后,可以传递给find()函数以获得索引。

语法:

indices = find(contain(array,string)).

示例 2:

% 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))

输出:

在MATLAB中查找包含我的字符串的单元格的索引

可以验证的是,字符串’gee’出现在单元格1、3和4中。

寻找我的字符串作为一个精确单元格的索引。

为了找到完全匹配的字符串,我们将使用strcmp()函数,它返回一个完全匹配的逻辑数组。然后,通过将其传递给find()函数,我们将得到我的字符串的精确匹配的索引。

str_logical = strcmp(array,my_string) 

indices = find(str_logical) 

请看下面的代码来理解。

示例 3:

% 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);

输出:

在MATLAB中查找包含我的字符串的单元格的索引

我们可以看到,它只与 “geek “字符串完全匹配,而不是与 “geek “匹配。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程