samer@4: function I=fuzzeye(n,m,sigma) samer@4: % fuzzeye Fuzzy nonsquare unit matrix samer@4: % samer@4: % I=fuzzeye(n,m) samer@4: % I=fuzzeye([n m]) samer@4: % I=fuzzeye(n,m,sigma) samer@4: % I=fuzzeye([n m],sigma) samer@4: % samer@4: % return n by m 'fuzzy' unit matrix samer@4: % spread factor sigma is roughly in elements samer@4: % default sigma is m/n or n/m (the larger) samer@4: samer@4: if length(n)>1, samer@4: if nargin<2, samer@4: sigma=2*max([n(2)/n(1) n(1)/n(2)]); samer@4: else samer@4: sigma=m; samer@4: end samer@4: m=n(2); samer@4: n=n(1); samer@4: else samer@4: if nargin<3, sigma=max([m/n n/m]); end samer@4: end samer@4: samer@4: sigma=sigma/max([n m]); samer@4: [X,Y]=meshgrid(0:m-1,0:n-1); samer@4: X = X/(m-1); samer@4: Y = flipud(Y)/(n-1); samer@4: Z = ((X-Y).^2)/(sigma^2); samer@4: I = exp(-Z/2);