您的位置:首页 > 编程语言 > MATLAB

用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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: