用MATLAB求多個集合的交集

2021-07-11 20:09:00 字數 749 閱讀 3361

%將每乙個集合放入矩陣的每一行,集合元素個數小於其他集合用零補齊

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];%將每輛個交集的元素放在乙個集合裡面

endend

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;

endend

endcc=unique(cc);%去除重複元素

if cc==0

disp('無交集')

return

enddisp('集合的交集為')

if v==1

disp(cc)

else

disp(cc(find(cc~=0)))%輸出集合中非零元素

end

求集合交集

求整數集合a與整數集合b的交集。輸入格式 輸入有三行 第一行是a和b的元素個數m和n 第二行是集合a的m個元素 第三行是集合a的n個元素。輸出格式 輸出交集的所有元素 按照在a集合出現的順序輸出,最後乙個輸出後面沒有空格 輸入樣例 在這裡給出一組輸入。例如 3 410 9 2 9 10 8 0 輸出...

求2個集合的交集

文章出處 求2個集合的交集 最簡單 粗暴的迴圈遍歷2個集合,判斷如果有相同的元素就取出來。假設集合1的長度為m,集合2的長度為n,那麼,時間複雜度為 o m n public static list getintersection list list1,listlist2 return list3 ...

求2個集合的交集

求2個集合的交集 最簡單 粗暴的迴圈遍歷2個集合,判斷如果有相同的元素就取出來。假設集合1的長度為m,集合2的長度為n,那麼,時間複雜度為 o m n public static list getintersection list list1,listlist2 return list3 利用has...