MATLAB 查找单元格数组中的精确字符串

MATLAB 查找单元格数组中的精确字符串

MATLAB 是为科学家和工程师开发的编程环境,用于设计和分析系统,进行数据分析,创建可视化等。MATLAB代表Matrix Laboratory,它是由MathWorks开发的编程和交互平台,提供了各种工具来编程数学函数和操作、数据分析等。MATLAB在科学、工程、金融、经济等不同领域广泛应用。

阅读本文以了解在MATLAB中查找单元格数组中精确字符串的过程。

什么是MATLAB中的单元格数组

在MATLAB中, 单元格数组 是一种数据结构,其中数组的每个元素可以包含不同数据类型的数据。因此,在单元格数组中,每个元素可以包含混合不同数据类型的数据,如整数、浮点数、字符、其他数组等。

在MATLAB中,我们可以使用以下两种语法定义单元格−

A = {'banana', 5.215, [1, 4]}

或者

A = cell({'banana', 5.215, [1, 4]})

这里,cell数组”A”包含三个不同数据类型的元素,分别为:

  • 第一个元素是字符串”banana”。

  • 第二个元素是浮点数”5.215″。

  • 第三个元素是值为[1, 4]的普通数组。

现在,让我们讨论如何在cell数组中找到精确的字符串。

在MATLAB中查找cell数组中的精确字符串

在MATLAB中,我们可以使用以下两个MATLAB函数的组合来查找cell数组中的精确字符串:

  • strcmp()和find()函数。

  • ismember()和find()函数。

让我们通过程序示例来看看如何在MATLAB中使用这些函数组合来查找cell数组中的精确字符串。

方法1:使用strcmp()和find()函数

在MATLAB中,我们可以使用strcmp()和find()函数的组合来在cell数组中查找精确字符串。

示例1

以下MATLAB程序演示了使用strcmp()和find()函数的组合来查找cell数组中精确字符串的过程。

% Create a cell array of strings
A = {'Tutorials', 'Point', 'for', 'MATLAB'}
% Choose a target string
target_string= 'MATLAB'
% Get a logical array from strcmp
strcmp(A, target_string)
% Find the index of the target string
index = find(strcmp(A, target_string))
% Check if the target string is found
if ~isempty(index)
   fprintf('The target string is found at index %d.  
', index)
else
   fprintf('The target string is not found.  
')
end

输出

它将产生以下 输出

A = 1×4 cell array
{'Tutorials'}    {'Point'}    {'for'}    {'MATLAB'}
target_string = 'MATLAB'
ans = 1×4 logical array
0   0   0   1
index = 4
The target string is found at index 4.

解释

在这段MATLAB代码中,我们首先创建了一个包含四个字符串“{‘Tutorials’, ‘Point’, ‘for’, ‘MATLAB’}”的单元数组“A”。然后,我们选择了一个目标字符串“MATLAB”。接下来,我们使用“strcmp()”函数返回一个逻辑数组,其中每个元素等于true(逻辑1),如果单元数组的对应元素等于目标字符串。然后,我们使用“find()”函数找到逻辑数组中等于true(逻辑1)的元素的索引,该索引对应于给定单元数组中目标字符串的索引。

现在,在代码中,如果“index”变量不为空,则表示在单元数组中找到了目标字符串。因此,程序的输出将为“The target string was found at index 4.”,表示目标字符串在给定单元数组中的索引为4。

方法2:使用ismember()和find()函数

在MATLAB中,我们也可以使用ismember()和find()函数的组合来查找单元数组中的精确字符串。

示例2

以下MATLAB程序演示了如何使用ismember()和find()函数的组合在MATLAB中查找单元数组中的精确字符串。

% Create a cell array of strings
A = {'Tutorials', 'Point', 'for', 'MATLAB'}
% Choose a target string
target_string = 'MATLAB'
ismember(A, target_string)
% Check if the target string is in the cell array
index = find(ismember(A, target_string))
% Check if the target string is found
if ~isempty(index)
   fprintf('The target string is found at index %d.  
', index)
else
   fprintf('The target string is not found.  
')
end

输出

它将产生以下输出 输出

A = 1×4 cell array
{'Tutorials'}    {'Point'}    {'for'}    {'MATLAB'}
target = 'MATLAB'
ans = 1×4 logical array
0   0   0   1
index = 4
The target string is found at index 4

解释

在这个MATLAB代码中,我们使用了ismember()函数来检查目标字符串是否在单元格数组中。在MATLAB中,”ismember()”函数返回一个逻辑数组,其中每个元素在单元格数组的对应元素等于目标字符串时为true(逻辑1)。

我们使用find()函数来找到逻辑数组中为true(逻辑1)的元素的索引,这个索引对应于给定单元格数组中的目标字符串的索引。最后,如果”index”变量不为空,那么目标字符串将在单元格数组中找到。

因此,MATLAB程序的输出将是”目标字符串在索引4处找到”。这表明在给定的单元格数组中,目标字符串在索引4处找到。

结论

我们可以使用”strcmp()”和”find()”或”ismember()”或”find()”函数的组合来在MATLAB中找到一个精确的字符串。”strcmp()”和”ismember()”函数都返回一个逻辑数组,在这个数组中,每个元素如果单元格数组的对应元素等于目标字符串,则为true(逻辑1)。因此,使用这两个MATLAB函数,我们可以轻松快速地搜索单元格数组中的特定元素,并获取它在单元格数组中的索引值。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程