source:
issm/oecreview/Archive/18296-19100/ISSM-19022-19023.diff
Last change on this file was 19102, checked in by , 10 years ago | |
---|---|
File size: 3.8 KB |
-
../trunk-jpl/src/m/contrib/resultstomatrix.m
1 function matrix=resultstomatrix(md,resultname,field,varargin)2 %RESULTSTOMATRIX - go grab in the model results structure the vector results for each time step (which is not empty),3 % and line them up in a matrix. If time vector is provided, resample.4 %5 % Usage:6 % matrix=resultstomatrix(model,solutioname,fieldname)7 %8 % Available options:9 % - 'time' : vector providing new time tags used to resample time10 %11 % Example:12 % vel=resultstomatrix(md,'TransientSolution','Vel');13 % vel=resultstomatrix(md,'TransientSolution','Vel','time',2008:1/12:2014);14 %15 % See also MODEL resample16 17 18 options=pairoptions(varargin{:});19 20 results=md.results.(resultname);21 22 %first, figure out the size:23 count=0;24 nods=0;25 for i=1:length(results),26 if ~isempty(results(i).(field)),27 count=count+1;28 nods=size(results(i).(field),1);29 end30 end31 32 if ~count,33 error(['could not find any result ' field ' in ' resultname]);34 end35 36 %initialize:37 matrix=zeros(nods+1,count);38 39 %fill it up:40 count=0;41 for i=1:length(results),42 if ~isempty(results(i).(field)),43 count=count+1;44 matrix(1:end-1,count)=results(i).(field);45 matrix(end,count)=results(i).time/md.constants.yts;46 end47 end48 49 newtime=getfieldvalue(options,'time',[]);50 newmatrix=zeros(nods+1,length(newtime));51 if ~isempty(newtime),52 %we are asked to reinterpolate to this new time:53 54 for i=1:nods,55 warning off;56 ts=timeseries(matrix(i,:), matrix(end,:));57 ts=resample(ts,newtime);58 warning on;59 newmatrix(i,:)=ts.Data;60 newmatrix(end,:)=ts.Time;61 end62 63 matrix=newmatrix;64 end -
../trunk-jpl/src/m/contrib/hack/resultstomatrix.m
1 function matrix=resultstomatrix(md,resultname,field,varargin) 2 %RESULTSTOMATRIX - go grab in the model results structure the vector results for each time step (which is not empty), 3 % and line them up in a matrix. If time vector is provided, resample. 4 % 5 % Usage: 6 % matrix=resultstomatrix(model,solutioname,fieldname) 7 % 8 % Available options: 9 % - 'time' : vector providing new time tags used to resample time 10 % 11 % Example: 12 % vel=resultstomatrix(md,'TransientSolution','Vel'); 13 % vel=resultstomatrix(md,'TransientSolution','Vel','time',2008:1/12:2014); 14 % 15 % See also MODEL resample 16 17 18 options=pairoptions(varargin{:}); 19 20 results=md.results.(resultname); 21 22 %first, figure out the size: 23 count=0; 24 nods=0; 25 for i=1:length(results), 26 if ~isempty(results(i).(field)), 27 count=count+1; 28 nods=size(results(i).(field),1); 29 end 30 end 31 32 if ~count, 33 error(['could not find any result ' field ' in ' resultname]); 34 end 35 36 %initialize: 37 matrix=zeros(nods+1,count); 38 39 %fill it up: 40 count=0; 41 for i=1:length(results), 42 if ~isempty(results(i).(field)), 43 count=count+1; 44 matrix(1:end-1,count)=results(i).(field); 45 matrix(end,count)=results(i).time/md.constants.yts; 46 end 47 end 48 49 newtime=getfieldvalue(options,'time',[]); 50 newmatrix=zeros(nods+1,length(newtime)); 51 if ~isempty(newtime), 52 %we are asked to reinterpolate to this new time: 53 54 for i=1:nods, 55 warning off; 56 ts=timeseries(matrix(i,:), matrix(end,:)); 57 ts=resample(ts,newtime); 58 warning on; 59 newmatrix(i,:)=ts.Data; 60 newmatrix(end,:)=ts.Time; 61 end 62 63 matrix=newmatrix; 64 end
Note:
See TracBrowser
for help on using the repository browser.