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