回 帖 发 新 帖 刷新版面

主题:[原创]求助各位大神,怎么把下面一段代码改成可在matlab中运行的?麻烦大家了~

x=[];y=[];b;q;t;f;
%x为输入的影响开发决策的各因素的权重
%y为输入的影响开发等级的各因素的分值
[m,n]=size(y)                     % 获得影响开发等级的各因素的分值矩阵y和行m和列n
for j=1:n                         %等级A的隶属度计算
   if y(1,j)>=90
       r1(1,j)=1;
   else if y(1,j)>80&y(1,j)<90
      rl(1,j)=(y(1,j)-80)/10;
else r(1,j)=0; 
   end
end
for j=1:n                         %等级B的隶属度计算
  if y(1,j)>80&y(1,j)<90
     r2(1,j)=(90-y(1,j)/10;
else if y(1,j)>70&y(1,j)<=80
     r2(1,j)=(y(1,j)-70)/10;
else r2(1,j)=0;
 end
end
for j=1:n                         %等级C隶属度计算
  if y(1,j)>70&y(1,j)<80
      r3(1,j)=(80-y(1,j))/10;
  else if y(1,j)>60&y(1,j)<=70
      r3(1,j)=(70-y(1,j))/10;
  else r3(1,j)=0;
  end
end
for j=1:n                         %等级D隶属度计算
  if y(1,j)>60&y(1,j)<70
      r4(1,j)=(y(1,j)-60)/10;
else if y(1,j)>50&y(1,j)<=60
     r4(1,j)=(y(1,j)-50)/10;
   else r4(1,j)=0;
  end
end
for j=1:n                         %等级E隶属度计算         
   If y(1,j)<=50
       r5(1,j)=1;
   Else if y(1,j)>50&y(1,j)<60
       r5(1,j)=(60-y(1,j))/10;
   else r5(1,j)=0;
   end
end
r=[r1;r2;r3;r4;r5]’                     %模糊评价矩阵
b=x*r                              %求得模糊矩阵b
f=[90,80,70,60,50]’;                   %开发风险等级
t=b*f                               %开发分数
q=0.50+(0.60-0.50)*(t-80)/(90-80)       %开发状况评价
6.2运行情况
输入数据:
y=[79 85 79 88 92 86 90 87 92 89];
x=[0.20 0.08 0.15 0.10 0.10 0.09 0.05 0.08 0.05 0.10];
输出结果:
m =1                                         %行
n =10                                        %列
r =                                          %模糊综合评价矩阵R
 
b=0.5200   0.4200   0.055   0   0           %模糊矩阵B
t=84.1000                                   %分数
q=0.5410                                    %开发量

回复列表 (共1个回复)

沙发

matlab是一种科学的计算语言,采用的是解释执行的方式,在配置比较水的机器(比如说我的),运行起来速度不敢恭维,但是他适合工程师用,快速建立起自己的运算平台,很多语法是类似c语言.

我来回复

您尚未登录,请登录后再回复。点此登录或注册