0001 function b = index(varargin)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 invars = {};
0015 for j=1:nargin
0016 invars = [invars cellstr(inputname(j))];
0017 end
0018
0019 ALGONAME = mfilename;
0020 VERSION = '$Id: index.html,v 1.1 2007/06/08 14:15:02 hewitson Exp $';
0021
0022 as = varargin{1};
0023 if ~isa(as, 'ao')
0024 error('### an array or matrix of AO objects is expected as first input argument.');
0025 end
0026
0027
0028 pl = [];
0029 if nargin == 2
0030 if isa(varargin{2}, 'plist')
0031 pl = varargin{2};
0032 i = find(pl, 'i');
0033 j = find(pl, 'j');
0034
0035 if j == 0
0036
0037 asi = as(i);
0038 else
0039
0040 asi = as(i,j);
0041 end
0042 else
0043 i = varargin{2};
0044 j = 0;
0045
0046 asi = as(i);
0047 end
0048 elseif nargin == 3
0049 i = varargin{2};
0050 j = varargin{3};
0051 if j == 0
0052
0053 asi = as(i);
0054 else
0055
0056 asi = as(i,j);
0057 end
0058 else
0059 error('### incorrect inputs.');
0060 end
0061
0062
0063 si = size(asi);
0064 na = si(1)*si(2);
0065 if na ~= 1
0066 error('### I only support a single index currently.');
0067 end
0068
0069 b = [];
0070
0071
0072 if isempty(pl)
0073 pl = plist([param('i', i) param('j', j)]);
0074 end
0075 h = history(ALGONAME, VERSION, pl, get(asi,'hist'));
0076 h = set(h, 'invars', invars);
0077
0078
0079 aout = ao(asi.data, h);
0080
0081
0082 aout = set(aout, 'name', get(asi, 'name'));
0083
0084 b = [b aout];
0085