0001 function varargout = save(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
0027
0028 if nargin == 2
0029 if isa(varargin{1}, 'ao') && ischar(varargin{2})
0030 in = char(varargin{2});
0031 if strcmp(in, 'Params')
0032 varargout{1} = getDefaultPL();
0033 return
0034 end
0035 end
0036 end
0037
0038
0039 ALGONAME = mfilename;
0040 VERSION = '$Id: save.m,v 1.10 2007/08/29 18:46:02 hewitson Exp $';
0041
0042 if nargin ~= 2
0043 help mfilename;
0044 error('### incorrect inputs');
0045 end
0046
0047
0048 a = varargin{1};
0049 if isa(varargin{2}, 'plist')
0050 filename = find(varargin{2}, 'filename');
0051 plo = varargin{2};
0052 else
0053
0054 filename = varargin{2};
0055 plo = plist(param('filename', filename));
0056 end
0057
0058
0059 [path,name,ext,vers] = fileparts(filename);
0060
0061 switch ext
0062 case '.mat'
0063
0064 save(filename, 'a');
0065
0066 case '.xml'
0067
0068 hist = a.hist;
0069 h = history(ALGONAME, VERSION, plo, hist);
0070
0071 a = set(a, 'hist', h);
0072 a = set(a, 'name', sprintf('save(%s,%s)', a.name, filename));
0073 a = set(a, 'tag', a.tag);
0074
0075
0076 x = xml(a);
0077
0078 xmlwrite(filename,x.docNode);
0079
0080 otherwise
0081 error('### unknown file extension.');
0082 end
0083
0084
0085 if nargout == 1
0086 varargout{1} = a;
0087 else
0088 for j=1:nargout
0089 varargout{j} = [];
0090 end
0091 end
0092
0093
0094 function plo = getDefaultPL()
0095
0096 disp('* creating default plist...');
0097 plo = plist();
0098 plo = append(plo, param('filename', ''));
0099 disp('* done.');
0100
0101
0102