0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023 function varargout = transpose(varargin)
0024
0025
0026 if utils.helper.isinfocall(varargin{:})
0027 varargout{1} = getInfo(varargin{3});
0028 return
0029 end
0030
0031 import utils.const.*
0032 utils.helper.msg(msg.MNAME, 'running %s/%s', mfilename('class'), mfilename);
0033
0034
0035 in_names = cell(size(varargin));
0036 for ii = 1:nargin,in_names{ii} = inputname(ii);end
0037
0038
0039 [as, ao_invars] = utils.helper.collect_objects(varargin(:), 'ao', in_names);
0040 pl = utils.helper.collect_objects(varargin(:), 'plist', in_names);
0041
0042
0043 bs = copy(as, nargout);
0044
0045
0046 pl = combine(pl, getDefaultPlist);
0047
0048 axis = find(pl, 'axis');
0049
0050 for kk = 1:numel(bs)
0051
0052
0053 if isa(bs(kk).data, 'data2D')
0054
0055 x = bs(kk).data.x;
0056 y = bs(kk).data.y;
0057
0058
0059
0060 bs(kk).data.setY([]);
0061 bs(kk).data.setX([]);
0062
0063 switch upper(axis)
0064 case 'X'
0065 bs(kk).data.setX(x.');
0066 bs(kk).data.setY(y.');
0067 case 'Y'
0068 bs(kk).data.setX(x.');
0069 bs(kk).data.setY(y.');
0070 case 'XY'
0071 bs(kk).data.setX(x.');
0072 bs(kk).data.setY(y.');
0073 otherwise
0074 error('### Unknown axis to operate on.');
0075 end
0076
0077 elseif isa(bs(kk).data, 'cdata')
0078 bs(kk).data.setY(bs(kk).data.getY.');
0079 else
0080 error('### Unknown data class [%s]', class(bs(kk).data))
0081 end
0082
0083
0084 bs(kk).addHistory(getInfo, pl, ao_invars(kk), bs(kk).hist);
0085
0086 bs(kk).setName(['transpose(' ao_invars{kk} ')'], 'internal');
0087 end
0088
0089
0090 if nargout > 0
0091 varargout{1} = bs;
0092 end
0093 end
0094
0095
0096
0097
0098 function ii = getInfo(varargin)
0099 if nargin == 1 && strcmpi(varargin{1}, 'None')
0100 sets = {};
0101 pl = [];
0102 else
0103 sets = {'Default'};
0104 pl = getDefaultPlist;
0105 end
0106
0107 ii = minfo(mfilename, 'ao', '', utils.const.categories.op, '$Id: transpose.m,v 1.22 2008/09/05 11:15:19 ingo Exp $', sets, pl);
0108 end
0109
0110
0111
0112
0113 function pl_default = getDefaultPlist()
0114 pl_default = plist('axis', 'xy');
0115 end
0116
0117