%将每一个集合放入矩阵的每一行,集合元素个数小于其他集合用零补齐
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