li.asv
来自「针对卡尔曼滤波的原创改进算法」· ASV 代码 · 共 52 行
ASV
52 行
function gl_out=grade(fielda,fieldb,N,vx)
% fielda 论域始点
% filedb 论域终点
% N 划分级别参数 总共有2*N+1级
% 输入真实值
% 输出二维数组 级别+隶属度
gl_out=zeros(2,2);
if vx<=filed
gl_out(0,0)=-N;
gl_out(0,1)=1;
end
d=(fielda-fieldb)/(2*N);
%向0取整
jb=fix(vx/d);
if jb<0
gl_out(0,0)=jb
gl_out(1,0)=jb-1;
gl_out(0,1)=li((jb-1)*d,(jb+1)*d,vx);
gl_out(1,1)=li((jb-2)*d,jb*d,vx);
end
if jb>0
gl_out(0,0)=jb
gl_out(1,0)=jb+1;
gl_out(0,1)=li((jb-1)*d,(jb+1)*d,vx);
gl_out(1,1)=li((jb)*d,(jb+2)*d,vx);
%等腰三角形隶属单元函数
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 + =
减小字号Ctrl + -
显示快捷键?