Mercurial > hg > ishara
annotate general/numerical/matrix/fuzzeye.m @ 35:f1ce7876346a
Updated docs.
author | samer |
---|---|
date | Mon, 21 Jan 2013 11:01:45 +0000 |
parents | db7f4afd27c5 |
children |
rev | line source |
---|---|
samer@4 | 1 function I=fuzzeye(n,m,sigma) |
samer@4 | 2 % fuzzeye Fuzzy nonsquare unit matrix |
samer@4 | 3 % |
samer@4 | 4 % I=fuzzeye(n,m) |
samer@4 | 5 % I=fuzzeye([n m]) |
samer@4 | 6 % I=fuzzeye(n,m,sigma) |
samer@4 | 7 % I=fuzzeye([n m],sigma) |
samer@4 | 8 % |
samer@4 | 9 % return n by m 'fuzzy' unit matrix |
samer@4 | 10 % spread factor sigma is roughly in elements |
samer@4 | 11 % default sigma is m/n or n/m (the larger) |
samer@4 | 12 |
samer@4 | 13 if length(n)>1, |
samer@4 | 14 if nargin<2, |
samer@4 | 15 sigma=2*max([n(2)/n(1) n(1)/n(2)]); |
samer@4 | 16 else |
samer@4 | 17 sigma=m; |
samer@4 | 18 end |
samer@4 | 19 m=n(2); |
samer@4 | 20 n=n(1); |
samer@4 | 21 else |
samer@4 | 22 if nargin<3, sigma=max([m/n n/m]); end |
samer@4 | 23 end |
samer@4 | 24 |
samer@4 | 25 sigma=sigma/max([n m]); |
samer@4 | 26 [X,Y]=meshgrid(0:m-1,0:n-1); |
samer@4 | 27 X = X/(m-1); |
samer@4 | 28 Y = flipud(Y)/(n-1); |
samer@4 | 29 Z = ((X-Y).^2)/(sigma^2); |
samer@4 | 30 I = exp(-Z/2); |