如何在 MATLAB 中检测数组中的重复值及其索引?
在本教程中,我将解释如何在 MATLAB 中检测数组中的重复值及其索引。为了完成此任务,我们可以使用 MATLAB 中的各种内置函数。在本文中,我将使用以下两个函数组合来实现这一点。
unique() 和 length()
unique() 和 ismember()
在开始实现 MATLAB 代码之前,让我们先了解检测数组中重复值所涉及的步骤。
如何使用 MATLAB 检测数组中的重复值及其索引?
在 MATLAB 中,检测数组中的重复值及其索引涉及以下步骤:
步骤 (1) - 输入或创建一个数组。
步骤 (2) - 使用函数返回数组中的唯一值。
步骤 (3) - 显示结果。
让我们考虑一些示例,以实际了解如何使用 MATLAB 实现这三个步骤来检测数组中的重复值编程。
(1). 使用"unique() & length()"函数检测数组中的唯一值
在 MATLAB 中,有两个内置函数"unique"和"length()"可用于检测数组中的重复值。
语法
unique_values = unique(input_array);
示例
考虑以下 MATLAB 程序以了解如何使用"unique"和"length"函数检测数组中的重复值。
% MATLAB 代码用于检测数组中的重复值 % 创建示例数组 A = [1, 2, 3, 2, 4, 3, 5, 6, 6, 7]; % 包含重复值的数组 B = [1, 2, 3, 4, 5, 6, 7]; % 包含唯一值的数组 % 确定数组中的唯一值 UV1 = unique(A); UV2 = unique(B); % 显示结果 disp('数组 A:'); disp(A); disp('数组 A 中的唯一值:'); disp(UV1); % 显示消息 if length(A) == length(UV1) fprintf('数组 A 中的每个元素都是唯一的。
'); else fprintf('数组 A 具有重复的值。
'); end disp('数组 B:'); disp(B); disp('数组 B 中的唯一值:'); disp(UV2); % 显示消息 if length(B) == length(UV2) fprintf('数组 B 中的每个元素都是唯一的。
'); else fprintf('数组 B 具有重复的值。
'); end
输出
数组 A: 1 2 3 2 4 3 5 6 6 7 数组 A 中的唯一值: 1 2 3 4 5 6 7 数组 A 具有重复的值。 数组 B: 1 2 3 4 5 6 7 数组 B 中的唯一值: 1 2 3 4 5 6 7 数组 B 中的每个元素都是唯一的。
(2). 使用"unique() & ismember()"函数检测数组中的唯一值及其索引
在 MATLAB 中,我们可以使用"unique"函数检测数组中的唯一值,使用"ismember"函数检测数组中重复值的索引。
示例
让我们举一个例子来了解如何使用"unique"和"ismember"函数检测数组中的重复值及其索引。
% MATLAB 代码用于查找数组中的重复值及其索引 % 创建示例数组 A = [1, 2, 3, 2, 3, 4, 1, 5, 6, 7, 6]; % 确定数组中的唯一值 unique_values = unique(A); % 创建一个空数组来存储重复值 duplicate_values = []; % 循环遍历唯一值以查找重复值 for i = 1:length(unique_values) value = unique_values(i); indices = find(A == value); % 如果有多个索引,则为重复 if numel(indices) > 1 duplicate_values = [duplicate_values, value]; end end % 确定数组中重复值的索引 % 创建一个空数组来存储重复值的索引 duplicate_ind = []; % 使用循环查找重复值的索引 for i = 1:length(A) if ismember(A(i), duplicate_values) duplicate_ind = [duplicate_ind, i]; end end % 显示重复值及其索引 fprintf('数组中的重复值:%s
', num2str(duplicate_values)); fprintf('重复值的索引:%s
', num2str(duplicate_ind));
输出
数组中的重复值:1 2 3 6 重复值的索引:1 2 3 4 5 7 9 11
代码说明
在此 MATLAB 代码中,我们首先定义一个包含多个重复值的示例数组。然后,我们使用"unique"函数查找数组中的唯一值。
接下来,我们创建一个空数组来存储重复值。为了查找重复值,我们循环遍历唯一值,如果发现任何重复值,则将其存储在数组"duplicate_values"中。在此循环中,我们检查数组中某个值是否有多个索引,如果是,则该值是重复的,并存储在重复数组中。
在代码的下一段中,我们检测重复值的索引。为此,我们创建一个空数组"duplicate_ind",它将存储数组中重复值的索引。要检测重复索引,我们使用"ismember"函数。
最后,我们将重复值及其索引显示为输出。
结论
这就是使用 MATLAB 编程检测数组中重复值及其索引的全部内容。MATLAB 提供了各种方法来完成此任务。在本教程中,我解释了如何使用 MATLAB 的内置函数(即"unique & length"和"unique & ismember")的组合来检测数组中的重复值及其索引。您也可以在数组中尝试这些 MATLAB 代码。