0001 function varargout = transpose(varargin)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022 VERSION = '$Id: transpose.m,v 1.10 2007/09/27 09:03:25 ingo Exp $';
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 varargout{1} = getDefaultPL();
0031 return
0032 elseif strcmp(in, 'Version')
0033 varargout{1} = VERSION;
0034 return
0035 end
0036 end
0037 end
0038
0039
0040 invars = {};
0041
0042 as = [];
0043 bs = [];
0044 ps = [];
0045
0046 for j=1:nargin
0047 invars = [invars cellstr(inputname(j))];
0048 if isa(varargin{j}, 'ao')
0049 as = [as varargin{j}];
0050 end
0051 if isa(varargin{j}, 'plist')
0052 ps = [ps varargin{j}];
0053 end
0054 end
0055
0056
0057 if isempty(ps)
0058 pl = getDefaultPL();
0059 else
0060 pl = combine(ps, getDefaultPL);
0061 end
0062
0063
0064 plo = plist();
0065
0066
0067 for j=1:numel(as)
0068 a = as(j);
0069 d = get(a, 'data');
0070 dinfo = whos('d');
0071
0072
0073 dtype = dinfo.class;
0074
0075 switch dtype
0076 case 'cdata'
0077 disp('* TRANSPOSE of cdata object');
0078
0079 [h, c] = single_operation(d, 'transpose', pl);
0080
0081
0082 h = set(h, 'inhists', [a.hist]);
0083
0084
0085 if (j <= nargin)
0086 if (isempty (inputname(j)))
0087 h = set(h, 'invars', cellstr('no var_name'));
0088 else
0089 h = set(h, 'invars', cellstr(inputname(j)));
0090 end
0091 else
0092 h = set(h, 'invars', cellstr('no var_name'));
0093 end
0094
0095 b = ao(c, h);
0096 b = set(b, 'name', sprintf('transpose(%s)', char(invars{1})));
0097
0098 case {'tsdata','fsdata','xydata'}
0099 error('### this function works for cdata type AO only')
0100 otherwise
0101 error('### unknown data type.')
0102
0103 end
0104
0105
0106 bs = [bs b];
0107 end
0108
0109
0110 bs = reshape(bs, size(as));
0111 varargout{1} = bs;
0112
0113
0114 function plo = getDefaultPL()
0115
0116 plo = plist();
0117
0118