annotate general/funutils/@function_handle/table.m @ 61:eff6bddf82e3 tip

Finally implemented perceptual brightness thing.
author samer
date Sun, 11 Oct 2015 10:20:42 +0100
parents ae596261e75f
children
rev   line source
samer@38 1 function [g,s,l,seq]=table(f,varargin)
samer@38 2 opts=options('nargin',nargin(f),'nargout',nargout(f),'file',[],varargin{:});
samer@38 3 nin=opts.nargin;
samer@38 4 nout=opts.nargout;
samer@38 5
samer@38 6 Table=cell(0,nin+nout);
samer@38 7
samer@38 8 g=@lookup;
samer@38 9 s=@saver;
samer@38 10 l=@loader;
samer@38 11 seq=@getrows;
samer@38 12
samer@38 13 function s=getrows, s=slices(Table,1); end
samer@38 14 function saver(file),
samer@38 15 if nargin<1, file=opts.file; end
samer@38 16 fprintf('saving %d tabled rows of %s to %s\n',size(Table,1),tostring(f),file);
samer@38 17 d.table=Table;
samer@38 18 save(file,'-struct','d');
samer@38 19 end
samer@38 20 function loader(file),
samer@38 21 if nargin<1, file=opts.file; end
samer@38 22 d=load(file);
samer@38 23 Table=d.table;
samer@38 24 fprintf('loading %d tabled rows of %s from %s\n',size(Table,1),tostring(f),file);
samer@38 25 end
samer@38 26
samer@38 27 function varargout=lookup(varargin)
samer@42 28 for i=1:size(Table,1)
samer@42 29 if isequal(varargin,Table(i,1:nin)),
samer@42 30 varargout=Table(i,nin+(1:nout));
samer@42 31 return;
samer@42 32 end
samer@38 33 end
samer@42 34 [varargout{1:nout}]=f(varargin{:});
samer@42 35 Table=vertcat(Table,[varargin,varargout]);
samer@38 36 end
samer@38 37 end
samer@38 38