这个程序的步骤是这样的,
一:对X(8*2阶矩阵)进行标准化处理,得到相似矩阵R;
二求闭包矩阵, 求闭包矩阵的运算规则是 设:A= (aij)是n×m阶矩阵,B= (bjk)是m×1阶矩阵,则C=AoB= (cik)是n×1阶矩阵,
cik=∨mj=1(aij∧bjk).其中:∨为两数取大运算(逻辑加),∧为两数取小运算(逻辑乘). ,使用传递闭包法聚类:对标定的模糊相似矩阵R,依次用平方法计算,R2,R4,…,R2t,…,当第一次出现RkoRk=Rk时,则称Rk= (tij)为传递闭包,记为t(R).
这个程序已经把R求出来了,只是求闭包矩阵的时候老是提示程序错误,本人是个新学者,实在是找不出错误在哪里,劳烦各位高手帮帮忙,帮小妹一把,万分感谢。
X=[0.4,0;0.4,0.1304;0.8,1.1531; 1,1.0854;0.8,0.6;0.8,0.5625;0.6,0.4545;0.6,0.0476];I=ones(8,8);
for i=1:8
for j=1:8
Y(i,j)=(abs(X(i,1)-X(j,1))+abs(X(i,2)-X(j,2)));
end
end
R=round((1-0.5*Y)*100)/100
R =
1.0000 0.9300 0.2200 0.1600 0.5000 0.5200 0.6700 0.8800
0.9300 1.0000 0.2900 0.2200 0.5700 0.5800 0.7400 0.8600
0.2200 0.2900 1.0000 0.8700 0.7200 0.7000 0.5500 0.3500
0.1600 0.2200 0.8700 1.0000 0.6600 0.6400 0.4800 0.2800
0.5000 0.5700 0.7200 0.6600 1.0000 0.9800 0.8300 0.6200
0.5200 0.5800 0.7000 0.6400 0.9800 1.0000 0.8500 0.6400
0.6700 0.7400 0.5500 0.4800 0.8300 0.8500 1.0000 0.8000
0.8800 0.8600 0.3500 0.2800 0.6200 0.6400 0.8000 1.0000
>> flag =0;
C=R;B=rand(8);
while flag ==0
for i=1:8
for j=1:8
for k=1:8
B(i,j)=max(min(C(i,k),C(k,j)),B(i,j));
end
end
if B==C
flag=1;
else
C=B;
end
B
t(R)=B
B=
B=
|
Error: Expression or statement is incomplete or incorrect.


雷达卡


京公网安备 11010802022788号







