From: <lm...@us...> - 2011-06-22 02:24:36
|
Revision: 8343 http://octave.svn.sourceforge.net/octave/?rev=8343&view=rev Author: lmarkov Date: 2011-06-22 01:51:28 +0000 (Wed, 22 Jun 2011) Log Message: ----------- M inst/addvar.m M inst/getfis.m M inst/gaussmf.m M inst/addmf.m M inst/readfis.m M inst/addrule.m Modified Paths: -------------- trunk/octave-forge/main/fuzzy-logic-toolkit/inst/addmf.m trunk/octave-forge/main/fuzzy-logic-toolkit/inst/addrule.m trunk/octave-forge/main/fuzzy-logic-toolkit/inst/addvar.m trunk/octave-forge/main/fuzzy-logic-toolkit/inst/gaussmf.m trunk/octave-forge/main/fuzzy-logic-toolkit/inst/getfis.m trunk/octave-forge/main/fuzzy-logic-toolkit/inst/readfis.m Modified: trunk/octave-forge/main/fuzzy-logic-toolkit/inst/addmf.m =================================================================== --- trunk/octave-forge/main/fuzzy-logic-toolkit/inst/addmf.m 2011-06-22 01:50:32 UTC (rev 8342) +++ trunk/octave-forge/main/fuzzy-logic-toolkit/inst/addmf.m 2011-06-22 01:51:28 UTC (rev 8343) @@ -96,7 +96,7 @@ ## Keywords: fuzzy-logic-toolkit fuzzy membership-function membership ## Directory: fuzzy-logic-toolkit/inst/ ## Filename: addmf.m -## Last-Modified: 8 Jun 2011 +## Last-Modified: 20 Jun 2011 function fis = addmf (fis, in_or_out, var_index, mf_name, mf_type, mf_params) @@ -128,9 +128,17 @@ new_mf = struct ('name', mf_name, 'type', mf_type, 'params', mf_params); if (strcmp (tolower (in_or_out), 'input')) - fis.input(var_index).mf = [fis.input(var_index).mf, new_mf]; + if (length (fis.input(var_index).mf) == 0) + fis.input(var_index).mf = new_mf; + else + fis.input(var_index).mf = [fis.input(var_index).mf, new_mf]; + endif else - fis.output(var_index).mf = [fis.output(var_index).mf, new_mf]; + if (length (fis.output(var_index).mf) == 0) + fis.output(var_index).mf = new_mf; + else + fis.output(var_index).mf = [fis.output(var_index).mf, new_mf]; + endif endif endfunction Modified: trunk/octave-forge/main/fuzzy-logic-toolkit/inst/addrule.m =================================================================== --- trunk/octave-forge/main/fuzzy-logic-toolkit/inst/addrule.m 2011-06-22 01:50:32 UTC (rev 8342) +++ trunk/octave-forge/main/fuzzy-logic-toolkit/inst/addrule.m 2011-06-22 01:51:28 UTC (rev 8343) @@ -69,7 +69,7 @@ ## Keywords: fuzzy-logic-toolkit fuzzy rule ## Directory: fuzzy-logic-toolkit/inst/ ## Filename: addrule.m -## Last-Modified: 19 May 2011 +## Last-Modified: 21 Jun 2011 function fis = addrule (fis, rule_matrix) @@ -104,6 +104,10 @@ 'connection', connection); endfor - fis.rule = [fis.rule, new_rules]; + if (length (fis.rule) == 0) + fis.rule = new_rules; + else + fis.rule = [fis.rule, new_rules]; + endif endfunction Modified: trunk/octave-forge/main/fuzzy-logic-toolkit/inst/addvar.m =================================================================== --- trunk/octave-forge/main/fuzzy-logic-toolkit/inst/addvar.m 2011-06-22 01:50:32 UTC (rev 8342) +++ trunk/octave-forge/main/fuzzy-logic-toolkit/inst/addvar.m 2011-06-22 01:51:28 UTC (rev 8343) @@ -61,7 +61,7 @@ ## Keywords: fuzzy-logic-toolkit fuzzy variable ## Directory: fuzzy-logic-toolkit/inst/ ## Filename: addvar.m -## Last-Modified: 8 Jun 2011 +## Last-Modified: 20 Jun 2011 function fis = addvar (fis, in_or_out, var_name, var_range) @@ -91,9 +91,17 @@ new_variable = struct ('name', var_name, 'range', var_range, 'mf', []); if (strcmp (tolower (in_or_out), 'input')) - fis.input = [fis.input, new_variable]; + if (length (fis.input) == 0) + fis.input = new_variable; + else + fis.input = [fis.input, new_variable]; + endif else - fis.output = [fis.output, new_variable]; + if (length (fis.output) == 0) + fis.output = new_variable; + else + fis.output = [fis.output, new_variable]; + endif endif endfunction Modified: trunk/octave-forge/main/fuzzy-logic-toolkit/inst/gaussmf.m =================================================================== --- trunk/octave-forge/main/fuzzy-logic-toolkit/inst/gaussmf.m 2011-06-22 01:50:32 UTC (rev 8342) +++ trunk/octave-forge/main/fuzzy-logic-toolkit/inst/gaussmf.m 2011-06-22 01:51:28 UTC (rev 8343) @@ -22,9 +22,9 @@ ## ## For a given domain @var{x} and parameters @var{params} (or @var{[sig c]}), ## return the corresponding @var{y} values for the Gaussian membership -## function, a curve shaped like the Gaussian (normal) distribution, but scaled -## to have a maximum value of 1. By contrast, the area under the Gaussian -## distribution curve is 1. +## function. This membership function is shaped like the Gaussian (normal) +## distribution, but scaled to have a maximum value of 1. By contrast, the +## area under the Gaussian distribution curve is 1. ## ## The argument @var{x} must be a real number or a non-empty vector of strictly ## increasing real numbers, and @var{sig} and @var{c} must be real numbers. @@ -64,7 +64,7 @@ ## Keywords: fuzzy-logic-toolkit fuzzy membership-function gaussian ## Directory: fuzzy-logic-toolkit/inst/ ## Filename: gaussmf.m -## Last-Modified: 7 Jun 2011 +## Last-Modified: 20 Jun 2011 function y = gaussmf (x, params) @@ -102,12 +102,13 @@ %! params = [2 0]; %! y3 = gaussmf(x, params); %! figure('NumberTitle', 'off', 'Name', 'gaussmf demo'); -%! plot(x, y1, 'r;params = [0.5 0];'); +%! plot(x, y1, 'r;params = [0.5 0];', 'LineWidth', 2); %! hold on ; -%! plot(x, y2, 'b;params = [1 0];'); +%! plot(x, y2, 'b;params = [1 0];', 'LineWidth', 2); %! hold on ; -%! plot(x, y3, 'g;params = [2 0];'); +%! plot(x, y3, 'g;params = [2 0];', 'LineWidth', 2); %! ylim([-0.1 1.1]); %! xlabel('Crisp Input Value'); %! ylabel('Degree of Membership'); +%! grid; %! hold; Modified: trunk/octave-forge/main/fuzzy-logic-toolkit/inst/getfis.m =================================================================== --- trunk/octave-forge/main/fuzzy-logic-toolkit/inst/getfis.m 2011-06-22 01:50:32 UTC (rev 8342) +++ trunk/octave-forge/main/fuzzy-logic-toolkit/inst/getfis.m 2011-06-22 01:51:28 UTC (rev 8343) @@ -93,7 +93,7 @@ ## Keywords: fuzzy-logic-toolkit fuzzy fuzzy-inference-system fis ## Directory: fuzzy-logic-toolkit/inst/ ## Filename: getfis.m -## Last-Modified: 19 May 2011 +## Last-Modified: 21 Jun 2011 ##------------------------------------------------------------------------------ @@ -196,56 +196,92 @@ case 'numinputmfs' retval = []; for i = 1 : columns (fis.input) - retval = [retval columns(fis.input(i).mf)]; + if (i == 1) + retval = columns(fis.input(i).mf); + else + retval = [retval columns(fis.input(i).mf)]; + endif endfor case 'numoutputmfs' retval = []; for i = 1 : columns (fis.output) - retval = [retval columns(fis.output(i).mf)]; + if (i == 1) + retval = columns(fis.output(i).mf); + else + retval = [retval columns(fis.output(i).mf)]; + endif endfor case 'inlabels' retval = []; for i = 1 : columns (fis.input) - retval = [retval; fis.input(i).name]; + if (i == 1) + retval = fis.input(i).name; + else + retval = [retval; fis.input(i).name]; + endif endfor case 'outlabels' retval = []; for i = 1 : columns (fis.output) - retval = [retval; fis.output(i).name]; + if (i == 1) + retval = fis.output(i).name; + else + retval = [retval; fis.output(i).name]; + endif endfor case 'inrange' retval = []; for i = 1 : columns (fis.input) - retval = [retval; fis.input(i).range]; + if (i == 1) + retval = fis.input(i).range; + else + retval = [retval; fis.input(i).range]; + endif endfor case 'outrange' retval = []; for i = 1 : columns (fis.output) - retval = [retval; fis.output(i).range]; + if (i == 1) + retval = fis.output(i).range; + else + retval = [retval; fis.output(i).range]; + endif endfor case 'inmfs' retval = []; for i = 1 : columns (fis.input) - retval = [retval columns(fis.input(i).mf)]; + if (i == 1) + retval = columns(fis.input(i).mf); + else + retval = [retval columns(fis.input(i).mf)]; + endif endfor case 'outmfs' retval = []; for i = 1 : columns (fis.output) - retval = [retval columns(fis.output(i).mf)]; + if (i == 1) + retval = columns(fis.output(i).mf); + else + retval = [retval columns(fis.output(i).mf)]; + endif endfor case 'inmflabels' retval = []; for i = 1 : columns (fis.input) for j = 1 : columns (fis.input(i).mf) - retval = [retval; fis.input(i).mf(j).name]; + if (i == 1 && y == 1) + retval = fis.input(i).mf(j).name; + else + retval = [retval; fis.input(i).mf(j).name]; + endif endfor endfor @@ -253,7 +289,11 @@ retval = []; for i = 1 : columns (fis.output) for j = 1 : columns (fis.output(i).mf) - retval = [retval; fis.output(i).mf(j).name]; + if (i == 1 && y == 1) + retval = fis.output(i).mf(j).name; + else + retval = [retval; fis.output(i).mf(j).name]; + endif endfor endfor @@ -261,7 +301,11 @@ retval = []; for i = 1 : columns (fis.input) for j = 1 : columns (fis.input(i).mf) - retval = [retval; fis.input(i).mf(j).type]; + if (i == 1 && y == 1) + retval = fis.input(i).mf(j).type; + else + retval = [retval; fis.input(i).mf(j).type]; + endif endfor endfor @@ -269,7 +313,11 @@ retval = []; for i = 1 : columns (fis.output) for j = 1 : columns (fis.output(i).mf) - retval = [retval; fis.output(i).mf(j).type]; + if (i == 1 && y == 1) + retval = fis.output(i).mf(j).type; + else + retval = [retval; fis.output(i).mf(j).type]; + endif endfor endfor Modified: trunk/octave-forge/main/fuzzy-logic-toolkit/inst/readfis.m =================================================================== --- trunk/octave-forge/main/fuzzy-logic-toolkit/inst/readfis.m 2011-06-22 01:50:32 UTC (rev 8342) +++ trunk/octave-forge/main/fuzzy-logic-toolkit/inst/readfis.m 2011-06-22 01:51:28 UTC (rev 8343) @@ -66,7 +66,7 @@ ## Keywords: fuzzy-logic-toolkit fuzzy fuzzy-inference-system fis ## Directory: fuzzy-logic-toolkit/inst/ ## Filename: readfis.m -## Last-Modified: 7 Jun 2011 +## Last-Modified: 20 Jun 2011 ##------------------------------------------------------------------------------ @@ -108,7 +108,11 @@ for i = 1 : num_inputs [next_fis_input, num_mfs, line_num] = ... get_next_fis_io (fid, line_num, i, 'input'); - fis.input = [fis.input, next_fis_input]; + if (i == 1) + fis.input = next_fis_input; + else + fis.input = [fis.input, next_fis_input]; + endif ##---------------------------------------------------------------------- ## Read membership function info for the new FIS input from file. @@ -117,7 +121,11 @@ for j = 1 : num_mfs [next_mf, line_num] = get_next_mf (fid, line_num, i, j, 'input'); - fis.input(i).mf = [fis.input(i).mf, next_mf]; + if (j == 1) + fis.input(i).mf = next_mf; + else + fis.input(i).mf = [fis.input(i).mf, next_mf]; + endif endfor endfor @@ -129,7 +137,11 @@ for i = 1 : num_outputs [next_fis_output, num_mfs, line_num] = ... get_next_fis_io (fid, line_num, i, 'output'); - fis.output = [fis.output, next_fis_output]; + if (i == 1) + fis.output = next_fis_output; + else + fis.output = [fis.output, next_fis_output]; + endif ##---------------------------------------------------------------------- ## Read membership function info for the new FIS output from file. @@ -138,7 +150,11 @@ for j = 1 : num_mfs [next_mf, line_num] = get_next_mf (fid, line_num, i, j, 'output'); - fis.output(i).mf = [fis.output(i).mf, next_mf]; + if (j == 1) + fis.output(i).mf = next_mf; + else + fis.output(i).mf = [fis.output(i).mf, next_mf]; + endif endfor endfor @@ -152,7 +168,11 @@ for i = 1 : num_rules [next_rule, line_num] = ... get_next_rule (fid, line_num, num_inputs, num_outputs); - fis.rule = [fis.rule, next_rule]; + if (i == 1) + fis.rule = next_rule; + else + fis.rule = [fis.rule, next_rule]; + endif endfor endfunction This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |