幫我看看!這樣寫有沒有錯,

有一堆都是0*0的運算
如何修改比較好?

1.求 x,phi在每個函數的值
ex: ux =[0.2 0.6 0.7 0.8 0.1];
    UX =[x_S2 x_S1 x_CE x_B1 x_B2];
   

2.找出x,phi 最大的值,其他為0
ex: ux =[0 0 0 0.8 0 ];
    UX =UX.*(UX==max(UX));

3.ux * vy 得到 一個2為陣列
  for i=1:length(A)
    for j=1:length(B)
      Rm(i,j)=A(i)*B(j);
    end
  end 
= [0 0 0 0 0;
0 0 0 0 0;
0 0 0 0 0;
0 0 0 0 0;
0 0 0 0 0;
0 0 0 0 0;
0 0 0 0.56 0];

4.在ux * vy 與 規則庫相乘
  base.*Rm
  [S2*0 S3*0
   S2*0 ...
   B1*0 ...
   B2*0 ...
   B2*0 ...
   0*0
   0 *0 B3*0 B3*0 B3*0.56 B2*0;]

5.求出整個矩陣的和B3*0.56,也就推得到tho=22.4
  tho = sum(sum(base.*Rm));



function tho = cart_approximate(x,phi)
S3=-40;S2=-30;S1=-15;CE=0.0;B1=15;B2=30;B3=40;
base= [S2 S3 0 0 0;
S2 S3 S3 S3 0;
B1 S1 S2 S3 S2;
B2 B2 CE S2 S2
B2 B3 B2 B1 S1;
0 B3 B3 B3 B2;
0 0 0 B3 B2];

x_S2 =exp(-0.2*(x-(0))^2);
x_S1 =exp(-0.2*(x-(5))^2);
x_CE =exp(-0.2*(x-(10))^2);
x_B1 =exp(-0.2*(x-(15))^2);
x_B2 =exp(-0.2*(x-(20))^2);

phi_S3 =exp(-0.002*(phi-(-90))^2);
phi_S2 =exp(-0.002*(phi-(-30))^2);
phi_S1 =exp(-0.002*(phi-(30))^2);
phi_CE =exp(-0.002*(phi-(90))^2);
phi_B1 =exp(-0.002*(phi-(150))^2);
phi_B2 =exp(-0.002*(phi-(210))^2);
phi_B3 =exp(-0.002*(phi-(270))^2);

UX =[x_S2 x_S1 x_CE x_B1 x_B2];
UX =UX.*(UX==max(UX));
%disp(UX)

VY =[phi_S3 phi_S2 phi_S1 phi_CE phi_B1 phi_B2 phi_B3];
VY =VY.*(VY==max(VY));
%disp(VY)

Rm = Fuzzy_Cartesian_multiplication1(VY,UX);

tho = sum(sum(base.*Rm));

function Rm =Fuzzy_Cartesian_multiplication1(A,B)
for i=1:length(A)
for j=1:length(B)
Rm(i,j)=A(i)*B(j);
end
end