0001 function b = index(varargin)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026 if nargin == 2
0027 if isa(varargin{1}, 'ao') && ischar(varargin{2})
0028 in = char(varargin{2});
0029 if strcmp(in, 'Params')
0030 b = getDefaultPL();
0031 return
0032 end
0033 end
0034 end
0035
0036
0037 invars = {};
0038 for j=1:nargin
0039 invars = [invars cellstr(inputname(j))];
0040 end
0041
0042 ALGONAME = mfilename;
0043 VERSION = '$Id: index.m,v 1.5 2007/07/18 13:58:44 ingo Exp $';
0044
0045 as = varargin{1};
0046 if ~isa(as, 'ao')
0047 error('### an array or matrix of AO objects is expected as first input argument.');
0048 end
0049
0050
0051 pl = [];
0052 if nargin == 2
0053 if isa(varargin{2}, 'plist')
0054 pl = varargin{2};
0055 i = find(pl, 'i');
0056 j = find(pl, 'j');
0057
0058 if j == 0
0059
0060 asi = as(i);
0061 else
0062
0063 asi = as(i,j);
0064 end
0065 else
0066 i = varargin{2};
0067 j = 0;
0068
0069 asi = as(i);
0070 end
0071 elseif nargin == 3
0072 i = varargin{2};
0073 j = varargin{3};
0074 if j == 0
0075
0076 asi = as(i);
0077 else
0078
0079 asi = as(i,j);
0080 end
0081 else
0082 error('### incorrect inputs.');
0083 end
0084
0085
0086 si = size(asi);
0087 na = si(1)*si(2);
0088 if na ~= 1
0089 error('### I only support a single index currently.');
0090 end
0091
0092 b = [];
0093
0094
0095 if isempty(pl)
0096 pl = plist([param('i', i) param('j', j)]);
0097 end
0098 h = history(ALGONAME, VERSION, pl, get(asi,'hist'));
0099 h = set(h, 'invars', invars);
0100
0101
0102 aout = ao(asi.data, h);
0103
0104
0105 aout = set(aout, 'name', get(asi, 'name'));
0106
0107 b = [b aout];
0108
0109
0110 function pl_default = getDefaultPL()
0111
0112 disp('* creating default plist...');
0113 pl_default = plist();
0114 pl_default = append(pl_default, 'i', []);
0115 pl_default = append(pl_default, 'j', []);
0116 disp('* done.');
0117
0118
0119