用MATLAB求多个集合的交集
2016-05-15 21:35
316 查看
%将每一个集合放入矩阵的每一行,集合元素个数小于其他集合用零补齐
a=input('请输入集合的矩阵')
b=size(a,1);%判断有多少行
[m,n]=size(a);
c=zeros(1,m+n);%建立一个一维矩阵存放每俩个集合的交集元素
cc=zeros(1,m+n);%存放所有集合的交集
v=0;%为了判断集合
for i=1:b%外层循环从第一行开始,再从第二行开始
for j=(i+1):b%从上一个开始到结尾
c=[intersect(a(i,:),a(j,:)),c];%将每辆个交集的元素放在一个集合里面
end
end
for i=1:(m+n)
d=find(c==c(i));
t=length(d);%判断元素出现的次数是否和输入的集合次数相当
if(t==b)%如果相等
cc=[cc,c(i)];%把相等的放在一起
if(c(i)==0)%防止初始零元素和交集的零元素冲突
v=1;
end
end
end
cc=unique(cc);%去除重复元素
if cc==0
disp('无交集')
return
end
disp('集合的交集为')
if v==1
disp(cc)
else
disp(cc(find(cc~=0)))%输出集合中非零元素
end
a=input('请输入集合的矩阵')
b=size(a,1);%判断有多少行
[m,n]=size(a);
c=zeros(1,m+n);%建立一个一维矩阵存放每俩个集合的交集元素
cc=zeros(1,m+n);%存放所有集合的交集
v=0;%为了判断集合
for i=1:b%外层循环从第一行开始,再从第二行开始
for j=(i+1):b%从上一个开始到结尾
c=[intersect(a(i,:),a(j,:)),c];%将每辆个交集的元素放在一个集合里面
end
end
for i=1:(m+n)
d=find(c==c(i));
t=length(d);%判断元素出现的次数是否和输入的集合次数相当
if(t==b)%如果相等
cc=[cc,c(i)];%把相等的放在一起
if(c(i)==0)%防止初始零元素和交集的零元素冲突
v=1;
end
end
end
cc=unique(cc);%去除重复元素
if cc==0
disp('无交集')
return
end
disp('集合的交集为')
if v==1
disp(cc)
else
disp(cc(find(cc~=0)))%输出集合中非零元素
end
相关文章推荐
- 为MATLAB添加深度学习工具箱
- C/C++与Matlab混合编程
- 解决Matlab: Invalid MEX-file
- Matlab导出eps或jpg图片的四种方法
- utilities(matlab)—— 合成数据(synthesis data)
- matlab 矢量化编程(二)—— 使用 meshgrid
- 在MATLAB下调试Caffe
- Matlab Tricks(九)—— 矩阵行/列的增广(删除)
- MATLAB中的点运算
- Matlab分析音频
- matlab中字符串支持latex
- matlab 画图的坐标设置
- MATLAB画向量图
- MATLAB画ROC曲线,及计算AUC值
- utilities(matlab)—— 图像加噪
- utilities(matlab)—— PSNR 值的计算
- 基于MATLAB的音频信号处理技术实现
- matlab、opencv护眼模式之黑色主题
- Matlab Tricks( 八)—— 将 pgm 格式文件转换为 png 格式
- MatLab2012b/MatLab2013b分类器大全(svm,knn,随机森林等)