0001 function ts = set(ts, varargin)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023 if (nargout ~= 0)
0024
0025 fields = fieldnames(ts);
0026
0027 property_argin = varargin;
0028
0029 while length(property_argin) >= 2
0030 prop = property_argin{1};
0031 val = property_argin{2};
0032 property_argin = property_argin(3:end);
0033
0034 if ~ismember(prop, fields)
0035 error(['### ', prop, ' is not a valid timespan property.']);
0036 else
0037
0038
0039
0040 if strcmp(prop, 'start')
0041
0042 if isa(val, 'time')
0043 val = set(val, 'timeformat', ts.timeformat);
0044 ts.start = val;
0045 elseif ischar(val)
0046 ts.start = time(val, char(ts.timeformat));
0047 end
0048
0049
0050 ts = compute_interval(ts);
0051
0052
0053
0054
0055 elseif strcmp(prop, 'end')
0056
0057 if isa(val, 'time')
0058 val = set(val, 'timeformat', ts.timeformat);
0059 ts.end = val;
0060 elseif ischar(val)
0061 ts.end = time(val, char(ts.timeformat));
0062 end
0063
0064
0065 ts = compute_interval(ts);
0066
0067
0068
0069
0070 elseif strcmp(prop, 'timeformat')
0071
0072 if isa(val, 'timeformat')
0073 ts.timeformat = val;
0074
0075 ts.start = set(ts.start, 'timeformat', char(val));
0076 ts.end = set(ts.end, 'timeformat', char(val));
0077
0078 elseif ischar(val) || isnumeric(val)
0079 ts.start = set(ts.start, 'timeformat', val);
0080 ts.end = set(ts.end, 'timeformat', val);
0081
0082 ts.timeformat = ts.start.timeformat;
0083 end
0084
0085
0086
0087
0088 elseif strcmp(prop, 'timezone')
0089
0090 ts.start = set(ts.start, 'timezone', val);
0091 ts.end = set(ts.end, 'timezone', val);
0092
0093 ts.timezone = ts.start.timezone;
0094
0095
0096
0097
0098 else
0099 ts.(prop) = val;
0100 end
0101 end
0102
0103 end
0104
0105 else
0106 if ischar(varargin{2})
0107 error('### please use: %s = set(%s, ''%s'', ''%s'');', ...
0108 inputname(1), ...
0109 inputname(1), ...
0110 varargin{1}, ...
0111 varargin{2});
0112 elseif isnumeric(varargin{2})
0113 error('### please use: %s = set(%s, ''%s'', %d);', ...
0114 inputname(1), ...
0115 inputname(1), ...
0116 varargin{1}, ...
0117 varargin{2});
0118 else
0119 error('### please use: %s = set(%s, ''key'', ''value'');', ...
0120 inputname(1), ...
0121 inputname(1));
0122 end
0123 end