代码说明:
matlab7.1环境,把当前文件夹指定为matlab工作目录
simulate.m为主控程序
其余为被调函数
文件1 ds_fusion.m
function x=DS_fusion(x,y)
%功能:融合x,y两行向量
[nx,mx]=size(x);
if 1~=nx
disp('x应为行向量');
return;
end
[ny,my]=size(y);
if 1~=ny
disp('y应为行向量');
return;
end
if mx~=my
disp('x,y列数应相等');
return;
end
temp=0;
for i=1:mx-1
x(1,i)=x(1,i)*y(1,i)+x(1,i)*y(1,mx-1)+y(1,i)*x(1,mx-1);
if i==mx-1
x(1,i)=x(1,i)*y(1,i);
end
temp=temp+x(1,i);
end
for i=1:mx-1
x(1,i)=x(1,i)/temp;
end
x(1,mx)=0;
文件2 ds_out.m
function DS_out(Result,ec1,ec2)
%功能:由Result结果和ec1 ec2做出判断
[nx,mx]=size(Result);
if 1~=nx
disp('Result应为行向量');
return;
end
[data,index]=sort(Result(1,1:mx-2)); %升序排列
if (Result(inde