【Matlab笔记_17】查找数组中相同元素

案例一:找到数组中相同元素所在位置索引

方法:使用unique函数用于找到唯一的元素和它们在原数组中的索引。然后,histc函数用于计算每个唯一元素的出现次数,并通过ismember函数找到重复元素在原数组中的索引。最后,通过find函数找到包含重复元素的索引

复制代码
% 创建一个包含重复内容的数组
myArray = [1, 2, 3, 4, 2, 5, 6, 1];

% 使用unique函数查找唯一的元素和它们的索引
[uniqueElements, ~, indexInUnique] = unique(myArray);

% 使用ismember函数找到重复元素在原数组中的索引
duplicateIndices = find(ismember(indexInUnique, find(histc(indexInUnique, 1:numel(uniqueElements)) > 1)));

% 显示结果
if isempty(duplicateIndices)
    disp('数组没有重复的元素。');
else
    disp('数组包含重复的元素。');
    disp('重复元素的索引是:');
    disp(duplicateIndices);
end

案例二:找到相同元素第一次出现的索引

方法:对案例一进行稍微修改,使用accumarray函数用于在每个唯一元素的索引位置上存储第一次出现的索引。然后,通过histc函数找到重复元素,并使用这些索引找到相同元素第一次出现的位置。

复制代码
% 创建一个包含重复内容的数组
myArray = [1, 2, 3, 4, 2, 5, 6, 1];

% 使用unique函数查找唯一的元素和它们的索引
[uniqueElements, ~, indexInUnique] = unique(myArray);

% 使用accumarray函数找到每个元素第一次出现的索引
First_idx= accumarray(indexInUnique(:), (1:numel(myArray)).', [], @min);

% 找到重复元素的索引
result= First_idx(histc(indexInUnique, 1:numel(uniqueElements)) > 1);

% 显示结果
if isempty(result)
    disp('数组没有重复的元素。');
else
    disp('数组包含重复的元素。');
    disp('重复元素第一次出现的索引是:');
    disp(result);
end
相关推荐
袁气满满~_~7 小时前
Python数据分析学习
开发语言·笔记·python·学习
njsgcs8 小时前
ppo 找出口模型 训练笔记
人工智能·笔记
你要飞9 小时前
考研线代第四课:线性方程组
笔记·线性代数·考研·矩阵
week_泽9 小时前
第5课:短期记忆与长期记忆原理 - 学习笔记_5
java·笔记·学习·ai agent
suoge2239 小时前
六面体传热单元(体积热源)有限元MATLAB程序【理论文本+代码】|热传导有限元|对流换热边界条件|有限元传热分析
matlab·有限元编程·热传导·传热有限元·传热学·体积热源·热平衡方程
matlabgoodboy10 小时前
程序代做python代编程matlab定制代码编写C++代写plc设计java帮做
c++·python·matlab
日更嵌入式的打工仔10 小时前
嵌入式系统设计师软考个人笔记<1>
笔记
D3bugRealm10 小时前
MATLAB解决物理问题:从基础运动学到进阶力学的实战指南
开发语言·其他·matlab
wdfk_prog11 小时前
[Linux]学习笔记系列 -- bits
linux·笔记·学习
九成宫11 小时前
计算机网络期末复习——第4章:网络层 Part One
网络·笔记·计算机网络·软件工程