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

matlabdata analysisprogramming

在 MATLAB 中,单元格数组是一种数据结构,用于保存不同数据类型和大小的数据。简而言之,单元格数组允许我们存储不同类型的数据,如数字、字符、字符串、数组等。

在单元格数组中,每个单元格可以包含特定类型的数据。单元格数组是处理异构数据的强大工具。

在 MATLAB 中,花括号"{}"用于创建单元格数组,即

CellArray = {10, 'TutorialsPoint', [2 3 4]};

因此,当我们需要将不同类型的数据一起存储或将不同大小的数据一起存储时,单元格数组起着至关重要的作用。

正如在本文中,我们的主要目标是使用 MATLAB 在单元格数组中查找特定字符串的索引。我们可以使用以下两种方法中的任何一种来实现这一点:

  • 通过使用循环和条件语句的组合

  • 通过使用内置函数

现在让我们借助示例程序详细讨论每种方法。

使用循环和条件语句查找我的字符串的索引

在 MATLAB 中,我们可以使用条件语句和循环来查找包含我的字符串的单元格的索引。

示例

以下 MATLAB 程序演示了查找包含我的字符串的单元格索引的代码实现。

% MATLAB 程序使用循环和条件语句查找我的字符串的索引
% 创建字符串的示例单元格数组
A = {'Tutorials', 'Point', 'is', 'a', 'Great', 'Platform', 'to', 'Learn', 'Programming'};

% 指定我想要知道其索引的字符串
S = 'Learn';

% 创建一个空数组来存储索引
I = [];

% 循环遍历单元格数组
for i = 1:numel(A)
    if strcmp(A{i}, S)
        I = [I, i];
    end
end

% 显示包含我的字符串的单元格的索引
disp('包含我的字符串的单元格的索引:');
disp(I);

输出

包含我的字符串的单元格的索引:
     8

解释

在此 MATLAB 代码中,我们首先创建一个包含各种字符串的单元格数组"A"。然后,我们指定我们想要知道其在单元格数组中的索引的字符串"S",如本例中的"Learn",您可以根据需要更改它。

之后,我们创建一个空数组"I"来存储包含指定字符串的单元格的索引。接下来,我们在单元格数组中迭代一个"for"循环,其中我们使用"strcmp"函数将单元格字符串与指定字符串进行比较。如果两个字符串匹配,则包含该字符串的单元格的索引将存储到索引数组"I"中。

最后,我们使用"disp"函数显示包含指定字符串的单元格的索引。

需要注意的是,当单元格数组具有大量数据集时,循环方法效率不高。在这种情况下,我们使用一些内置函数来查找单元格数组中指定字符串的索引。

现在,让我们使用内置函数组合执行相同的操作。

使用内置函数查找我的字符串的索引

在 MATLAB 中,我们可以使用内置函数组合来查找包含指定字符串的单元格的索引。下面借助示例程序解释了一些常用的内置函数组合来查找单元格的索引。

示例

以下 MATLAB 代码显示如何使用"find"和"strcmp"函数查找字符串的索引:

% 创建字符串的示例单元格数组
A = {'Tutorials', 'Point', 'is', 'a', 'Great', 'Platform', 'to', 'Learn', 'Programming'};

% 指定我想要知道其索引的字符串
S = 'Learn';

% 查找包含指定字符串的单元格的索引
I = find(strcmp(A, S));

% 显示包含字符串的单元格的索引
disp('包含字符串的单元格的索引:');
disp(I);

输出

包含我的字符串的单元格索引:
     8

解释

在此 MATLAB 代码中,我们首先创建一个包含各种字符串的示例单元格数组"A"。接下来,我们指定字符串"S",该字符串在单元格数组中的索引必须被找到。之后,我们使用函数"find"和"strcmp"的组合来查找包含指定字符串的单元格的索引,在本例中为"Learn"。最后,我们使用"disp"函数显示结果。

示例

以下 MATLAB 程序显示如何使用"find"和"contains"函数查找字符串的索引:

% MATLAB 程序使用"find"和"contains"函数查找字符串的索引
% 创建字符串的示例单元格数组
A = {'Tutorials', 'Point', 'is', 'a', 'Great', 'Platform', 'to', 'Learn', 'Programming'};

% 指定我想要知道其索引的字符串
S = 'Learn';

% 查找包含指定字符串的单元格的索引
I = find(contains(A, S));

% 显示包含我的字符串的单元格的索引
disp('包含我的字符串的单元格的索引:');
disp(I);

输出

包含我的字符串的单元格的索引:
     8

解释

此 MATLAB 代码的实现和执行与上一个代码相同。唯一的区别是,在此代码中,我们使用了"contains"函数而不是"strcmp"函数来将指定的字符串与单元格数组的字符串进行比较。

示例

现在,让我们考虑另一个示例程序来查找包含我的字符串的多个单元格的索引。

% MATLAB 程序用于查找包含我的字符串的单元格的索引
% 创建一个字符串示例单元格数组
A = {'Tutorials', 'Point', 'is', 'a', 'Great', 'Platform', 'to', 'Learn', 'Programming'};

% 指定我想要知道其索引的字符串
S1 = 'Tutorials';
S2 = 'Platform';
S3 = 'Programming';

% 查找包含指定字符串的单元格的索引
I1 = find(strcmp(A, S1));
I2 = find(strcmp(A, S2));
I3 = find(strcmp(A, S3));

% 显示包含我的字符串的单元格的索引
disp('包含 Tutorials 的单元格的索引:');
disp(I1);
disp('包含 Platform 的单元格的索引:');
disp(I2);
disp('包含 Programming 的单元格的索引:');
disp(I3);

输出

包含 Tutorials 的单元格的索引:
	1

包含 Platform 的单元格的索引:
    6

包含 Programming 的单元格的索引:
    9

结论

在本教程中,我们解释了如何在单元格数组中找到包含指定字符串的单元格的索引的概念,并借助示例演示了实际的代码实现。


相关文章