在MATLAB中查找包含字符串的单元格的索引
在MATLAB中,单元数组是一种用于保存不同数据类型和大小的数据的数据结构类型。简而言之,单元数组允许我们存储不同类型的数据,如数字、字符、字符串、数组等等。
在单元数组中,每个单元格可以包含特定类型的数据。单元数组是处理异构数据的强大工具。
在MATLAB中,花括号“{}”用于创建单元数组,即
CellArray = {10, 'TutorialsPoint', [2 3 4]};
因此,当我们需要将不同类型的数据一起存储,或将不同大小的数据一起存储时,单元数组起着至关重要的作用。
就像在这篇文章中一样,我们的主要目标是使用MATLAB在单元数组中找到特定字符串的索引。我们可以使用以下两种方法之一来实现这一目标:
- 通过使用循环和条件语句的组合
- 通过使用内置函数
现在让我们通过示例程序详细讨论每种方法。
使用循环和条件语句查找我的字符串的索引
在MATLAB中,我们可以使用条件语句和循环来找到包含我的字符串的单元的索引。
示例
以下MATLAB程序演示了实现查找包含我的字符串的单元索引的代码。
% MATLAB program to find index of my string using loops and conditional statements
% Create a sample cell array of strings
A = {'Tutorials', 'Point', 'is', 'a', 'Great', 'Platform', 'to', 'Learn', 'Programming'};
% Specifying my string whose index I want to know
S = 'Learn';
% Create an empty array to store the index
I = [];
% Loop through the cell array
for i = 1:numel(A)
if strcmp(A{i}, S)
I = [I, i];
end
end
% Display the index of cells containing my string
disp('Index of cells containing my string:');
disp(I);
输出
Index of cells containing my string:
8
解释
在这段MATLAB代码中,我们首先创建了一个包含不同字符串的单元数组’A’。然后,我们指定要查找的字符串’S’在单元数组中的索引,例如在本例中为’Learn’,您可以根据需要进行更改。
然后我们创建了一个空数组’I’来存储包含指定字符串的单元格的索引。接下来,我们通过单元数组进行一个’for’循环迭代,其中我们使用了’strcmp’函数来比较单元格字符串和指定字符串。如果两个字符串匹配,包含该字符串的单元格的索引将存储到索引数组’I’中。
最后,我们使用’disp’函数显示包含指定字符串的单元格的索引。
需要注意的是,当单元数组包含大量数据集时,循环方法效率不高。在这种情况下,我们使用一些内置函数来找到单元数组中指定字符串的索引。
现在,让我们使用一些内置函数组合执行相同的操作。
使用内置函数查找我的字符串的索引
在MATLAB中,我们可以使用一些内置函数组合来找到包含指定字符串的单元格的索引。下面通过示例程序解释了一些常用的内置函数组合来查找单元格索引。
示例
以下MATLAB代码展示了如何使用”find”和”strcmp”函数来查找我的字符串的索引:
% Create a sample cell array of strings
A = {'Tutorials', 'Point', 'is', 'a', 'Great', 'Platform', 'to', 'Learn', 'Programming'};
% Specifying my string whose index I want to know
S = 'Learn';
% Find index of cell containing the specified string
I = find(strcmp(A, S));
% Display the index of cells containing my string
disp('Index of cells containing my string:');
disp(I);
输出
Index of cells containing my string:
8
解释
在这段MATLAB代码中,我们首先创建一个包含各种字符串的样本单元格数组’A’。接下来,我们指定要在单元格数组中找到的字符串‘S’的索引。然后,我们使用’find’和’strcmp’函数的组合来找到包含指定字符串(在此示例中为‘Learn’)的单元格的索引。最后,我们使用’disp’函数显示结果。
示例
以下MATLAB程序展示了如何使用”find”和”contains”函数找到我的字符串的索引:
% MATLAB program to find index of my string using 'find' and 'contains' functions
% Create a sample cell array of strings
A = {'Tutorials', 'Point', 'is', 'a', 'Great', 'Platform', 'to', 'Learn', 'Programming'};
% Specifying my string whose index I want to know
S = 'Learn';
% Find index of cell containing the specified string
I = find(contains(A, S));
% Display the index of cells containing my string
disp('Index of cells containing my string:');
disp(I);
输出
Index of cells containing my string:
8
解释
这段MATLAB代码的实现和执行与前一个代码相同。唯一的区别是,在这段代码中我们使用了’contains’函数来比较指定的字符串与单元数组中的字符串,而不是使用’strcmp’函数。
例子
现在,让我们考虑另一个示例程序来查找包含我的字符串的多个单元格的索引。
% MATLAB program to find index of cells containing my strings
% Create a sample cell array of strings
A = {'Tutorials', 'Point', 'is', 'a', 'Great', 'Platform', 'to', 'Learn', 'Programming'};
% Specifying my string whose index I want to know
S1 = 'Tutorials';
S2 = 'Platform';
S3 = 'Programming';
% Find indices of cells containing the specified strings
I1 = find(strcmp(A, S1));
I2 = find(strcmp(A, S2));
I3 = find(strcmp(A, S3));
% Display the indices of cells containing my strings
disp('Index of cell containing Tutorials:');
disp(I1);
disp('Index of cell containing Platform:');
disp(I2);
disp('Index of cell containing Programming:');
disp(I3);
输出
Index of cell containing Tutorials:
1
Index of cell containing Platform:
6
Index of cell containing Programming:
9
结论
在本教程中,我们解释了如何找到包含指定字符串的单元格数组中单元格的索引的概念,并通过示例演示了实际的代码实现。