gusucode.com > 模糊控制工具箱 fuzzy logic toolbox源码程序 > fuzzy/fuzzy/ja/fuzarith.m
% FUZARITH 僼傽僕傿戙悢 % % C = FUZARITH(X,A,B,OPERATOR) 偼丄椞堟 X 偺僼傽僕傿廤崌 A 偲 B 偵丄OP- % ERATOR 傪揔梡偟偨寢壥偲偟偰僼傽僕傿廤崌 C 傪弌椡偟傑偡丅A丄B 偍傛傃 % X 偼丄摨師尦偺儀僋僩儖偱側偗傟偽側傝傑偣傫丅OPERATOR 偼丄暥帤楍 'sum' % 'sub'丄'prod'丄'div' 偺拞偺1偮偱側偗傟偽側傝傑偣傫丅弌椡偝傟傞僼傽僕傿 % 廤崌 C 偼丄A 偲 B 偲挿偝偑摨偠偱偁傞楍儀僋僩儖偱偡丅偙偺娭悢偱偼丄嬫娫 % 偱偺墘嶼傪巊梡偡傞偙偲偲丄偮偓偺偙偲傪憐掕偟偰偄傞偙偲偵拲堄偟偰偔偩偝 % 偄丅 % % 1.A 偲 B 偼丄撌僼傽僕傿廤崌偱偡丅 % % 2.X 偺斖埻偺奜偱丄A 偲 B 偺儊儞僶僔僢僾奒媺偼0偱偡丅 % % 僼傽僕傿壛嶼偼丄"divide by zero"儊僢僙乕僕傪嶌惉偟傑偡丅偟偐偟側偑傜丄 % 偙偺娭悢偺惛搙偵塭嬁偼偁傝傑偣傫(偨偩偟丄VAX 傗 Cray 側偳偺 IEEE 墘嶼 % 傪巊偭偰偄側偄儅僔儞偱偼栤戣偑惗偢傞応崌偑偁傝傑偡)丅 % % 椺戣 % point_n = 101; MF偺夝憸搙傪寛掕 % min_x = -20; max_x = 20; 椞堟 [min_x,max_x] % x = linspace(min_x,max_x,point_n)'; % A = trapmf(x,[-10 -2 1 3]); A偼戜宍僼傽僕傿廤崌 % B = gaussmf(x,[2 5]); B偼僈僂僗僼傽僕傿廤崌 % C1 = fuzarith(x,A,B,'sum'); % subplot(2,2,1); % plot(x,A,'y--',x,B,'m:',x,C1,'c'); % title('fuzzy addition A+B'); % C2 = fuzarith(x,A,B,'sub'); % subplot(2,2,2); % plot(x,A,'y--',x,B,'m:',x,C2,'c'); % title('fuzzy subtraction A-B'); % C3 = fuzarith(x,A,B,'prod'); % subplot(2,2,3); % plot(x,A,'y--',x,B,'m:',x,C3,'c'); % title('fuzzy multiplication A*B'); % C4 = fuzarith(x,A丄B,'div'); % subplot(2,2,4); % plot(x,A,'y--'.x.B.'m:'.x丄C4,'c'); % title('fuzzy division A/B'); % Copyright 1994-2004 The MathWorks, Inc.