?? ts_induce.asv
字號:
function r=ts_induce(fielda,fieldb,N,vx)
gl=grade(fielda,fieldb,N,vx);
r=[0,0];
if gl(1,2)>gl(2,2)
r(2)=gl(1,2);
r(1)=gl(1,1);
else
r(1)=gl(2,1);
r(2)=gl(2,2);
end
function gl_out=grade(fielda,fieldb,N,vx)
%gl_out 2*2
%[-x,x]形式
% fielda 論域始點
% filedb 論域終點
% N 劃分級別參數 總共有2*N+1級
% 輸入真實值
% 輸出二維數組 級別+隸屬度
gl_out=zeros(2,2);
d=(fieldb-fielda)/(2*N);
%向0取整
jb=fix(vx/d);
% eps 整數最小步進距離
if jb<=-N
gl_out(1,1)=-N;
gl_out(1,2)=1;
gl_out(2,1)=0;
gl_out(2,2)=0;
elseif jb<eps
gl_out(1,1)=jb;
gl_out(1,2)=li((jb-1)*d,(jb+1)*d,vx);
gl_out(2,1)=jb-1;
gl_out(2,2)=li((jb-2)*d,jb*d,vx);
elseif jb<N
gl_out(1,1)=jb;
gl_out(1,2)=li((jb-1)*d,(jb+1)*d,vx);
gl_out(2,1)=jb+1;
gl_out(2,2)=li((jb)*d,(jb+2)*d,vx);
else
gl_out(1,1)=N;
gl_out(1,2)=1;
gl_out(2,1)=0;
gl_out(2,2)=0;
end
%等腰三角形隸屬單元函數
function ms=li(a,b,x)
% a 起點
% b 終點
% x 輸入
if x<=a
ms=0;
elseif x<(a+b)/2
ms=2*(x-a)/(b-a);
elseif x<b
ms=2*(x-b)/(a-b)
else;
ms=0;
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -