dis2alpha.m

来自「FISMAT accommodates different arithmetic」· M 代码 · 共 47 行

M
47
字号
function [alpha]=dis2alpha(univ, msf,qlevel)% [alpha]=dis2alpha(univ, msf,qlevel)%% Discrete set to alpha-cut transformation of one fuzzy set.% The discrete set, i.e univ and msf are assumed to be given% as row vectors.% univ   : the universe of discourse% msf    : membership function of the fuzzy set% qlevel : number of alpha levels in which the membership grade%          is divided.% alpha  : 3xqlevel matrix with qlevel sets in each column.% 	   The first row contains the left boundary and the second%          row contains the corresponding right-hand values of the%          level. The third row contains the value alpha of the level.%          The first column corresponds to the level alpha=1.%% FSTB - Fuzzy Systems Toolbox for MATLAB% Copyright (c) 1993-1996 by Olaf Wolkenhauer% Control Systems Centre at UMIST% Manchester M60 1QD, UK%% O.Wolkenhauer 7 Feb 1996% Last change   9 Feb 1996% Test, if discrete set is normal, if not normalise:dec=find(msf==1);if isempty(dec),  msf=modi_set(msf,'nor');end;for i=1:qlevel,                   % start with alpha=1.  ulevel=1-(i-1)*(1/qlevel); % upper level of a section  llevel=1-(i/qlevel);  % Ensure via interpolation that appropriate values are excisting:  ordv=[];  for k=1:length(msf), % search from left to right    if (msf(k) > llevel) & (msf(k) <= ulevel),      msfalpha=interp1([msf(k) msf(1)],[univ(k) univ(1)],level);      ordv=[ordv,msfalpha];    end;  end;  alpha(1,i)=ordv(1);  alpha(2,i)=ordv(length(ordv));  alpha(3,i)=level;end;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?