syms i j m n
%男基础
a=xlsread('D:\qq\3149799906\女男.xlsx','B3:G22');
%女基础
b=xlsread('D:\qq\3149799906\女男.xlsx','B26:G45');
%男要求
c=xlsread('D:\qq\3149799906\女男.xlsx','H3:L22');
%女要求
d=xlsread('D:\qq\3149799906\女男.xlsx','H26:L45');
[n,m]=size(a);
satisfaction=zeros(n,n);
g=zeros(n,n);
h=zeros(n,n);
for i=1:n %当年龄不满足时,满意程度为0
for j=1:n
if (a(i,m)-b(j,m)>5||b(j,m)-a(i,m)>2)
satisfaction(i,j)=0; %满意程度
end
end
end
b(:,m)=[];
for i=1:n %当年龄满足时,计算出20个男生对20个女生的满意程度
for j=1:n
for e=1:m-1
if b(i,e)
satisfaction(i,j)=satisfaction(i,j)+0;
else
satisfaction(i,j)=satisfaction(i,j)+b(i,e)-c(j,e)+1;
g(i,j)=g(i,j)+1; %设置一个矩阵存放满足条件的个数
end
end
end
end
for i=1:n %当年龄满足时,计算出20个女生对20个男生的满意程度
for j=1:n
for e=1:m-1
if b(i,e)
satisfaction(i,j)=satisfaction(i,j)+0;
else
satisfaction(i,j)=satisfaction(i,j)+c(i,e)-b(j,e)+1; %这里直接算出互相之后的满意程度之和
h(i,j)=h(i,j)+1; %这里就变成了双方都满足条件的个数
end
end
end
end
for i=1:n
for j=1:n
if g(i,j)<2||h(i,j)<2
satisfaction(i,j)=0;
end
end
end
您可以随便搞一些数据跑跑
点击导入数据按钮,选择保存为矩阵类型,重命名后存在与代码一致路径下,并在代码中load 数据名即可