楼主: lindahc
663 1

紧急求助各位MATLAB大神!!! [推广有奖]

  • 1关注
  • 0粉丝

已卖:1份资源

本科生

86%

还不是VIP/贵宾

-

威望
0
论坛币
581 个
通用积分
0.0000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
529 点
帖子
7
精华
0
在线时间
251 小时
注册时间
2015-5-7
最后登录
2025-11-28

楼主
lindahc 学生认证  发表于 2017-4-22 12:17:43 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
clear
A=[1 3 1 5;1/3 1 1 1/3;1 1 1 1/3;1/5 3 3 1];
[n,n]=size(A);
B=zeros(n,n);
flag=0;
while flag==0;
B=ones(4,1)*sum(A);
B=A./B;
w=sum(B,2)/n;
w=w*ones(1,4);
C=B./w;
Ckl=abs(C-1);
[Ck,Cl]=find(Ckl==max(max(Ckl)));
Ckl=C(Ck,Cl);
Akl=A(Ck,Cl);
if Ckl>1  %%4.1
        if Akl>1
            A(Ck,Cl)=Akl-1;
            A(Cl,Ck)=1/A(Ck,Cl); %5
            for i=1:n
                for j=1:n
                    if (i==Ck)&(j==Cl);
                        continue
                    end
                   A(i,j)=1/A(j,i);
                end
            end

        else  %%4.
            A(Ck,Cl)=A(Ck,Cl)/(1+A(Ck,Cl));
            A(Cl,Ck)=1/A(Ck,Cl);%5
            for i=1:n
                for j=1:n
                    if (i==Ck)&(j==Cl);
                        continue
                    end
                    A(i,j)=1/A(j,i);
                end
            end
        end

    else  %4.2
       if Akl>1
            A(Ck,Cl)=Ak1+1;
            A(Cl,Ck)=1/A(Ck,Cl);%5
            for i=1:n
                for j=1:n
                    if (i==Ck)&(j==Cl);
                        continue
                    end
                   A(i,j)=1/A(j,i);
                end
            end

        else  %%4.
            A(Ck,Cl)=A(Ck,Cl)/(1-A(Ck,Cl));
            A(Cl,Ck)=1/A(Ck,Cl);%5
            for i=1:n
                for j=1:n
                    if (i==Ck)&(j==Cl);
                        break
                    end
                    A(i,j)=1/A(j,i);
                end
            end
        end

    end
%  
[n,n]=size(A);
[v,d]=eig(A);
r=d(1,1);
CI=(r-n)/(n-1);
RI=[0 0 0.52 0.89 1.12 1.26 1.36 1.41 1.46 1.49 1.52 1.54 1.56 1.58 1.59 1.61];
CR=CI/RI(n);
   if(CR<0.10)
  result=1;
     else
  result=0;   
   end
  flag=result;
end

请教各位大神,这个算法的问题出在哪里呀?
如果不要while循环的话,程序是ok的,可是一加while循环就出错了。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:MATLAB matla atlab 紧急求助 Mat

D5VAG12TQ5EJBKUV6[)8U9D.png (3.1 KB)

D5VAG12TQ5EJBKUV6[)8U9D.png

已有 1 人评分论坛币 收起 理由
zhuosn + 5 精彩帖子

总评分: 论坛币 + 5   查看全部评分

沙发
云在遨游 发表于 2017-4-22 12:34:24 来自手机
lindahc 发表于 2017-4-22 12:17
clear
A=[1 3 1 5;1/3 1 1 1/3;1 1 1 1/3;1/5 3 3 1];
[n,n]=size(A);
matlab自己完全不懂,羡慕你们能学习该软件。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
扫码
拉您进交流群
GMT+8, 2026-1-27 08:54