123456789101112131415161718192021222324252627282930313233 |
- function C = min_kernel(a, b)
- if nargin<1 || nargin>2 || nargout>1, error('Wrong number of arguments.'); end
- bsx = exist('bsxfun','builtin');
- if ~bsx, bsx = exist('bsxfun'); end
- [D, n] = size(a);
- if nargin==1
- b = a; m = n;
- else
- [d, m] = size(b);
- if d ~= D, error('Error: column lengths must agree.'); end
- end
- if bsx
- C = zeros(n,m);
-
- if ( n > m )
- for i=1:m
- C(:,i)=sum(bsxfun(@min,a,b(:,i)),1)';
- end
- else
- for j=1:n
- C(j,:)=sum(bsxfun(@min,a(:,j),b),1);
- end
- end
- else
- error('not yet implemented...');
- end
- C = max(C,0);
|