📄 ncdim2rec.m
字号:
function ncdim2rec(theNetCDF, theDim)
% ncdim2rec -- Convert static dimension to record dimension.
% ncdim2rec(theNetCDF, theDim) converts one of the dimensions
% of theNetCDF, given as theDim, to a record-dimension.
% The arguments may be strings or NetCDF entities.
% The chosen dimension must be left-most in all the
% variables that use it.
% Copyright (C) 2001 Dr. Charles R. Denham, ZYDECO.
% All Rights Reserved.
% Disclosure without explicit written consent from the
% copyright owner does not constitute publication.
% Version of 13-Nov-2001 09:25:59.
% Updated 03-Mar-2003 16:25:27.
if nargin < 1, help(mfilename), return, end
if ischar(theNetCDF)
theFilename = theNetCDF;
theNetCDF = netcdf(theFilename, 'nowrite');
if isempty(theNetCDF)
disp([' ## Unable to open as NetCDF: "' theFilename '"'])
return
end
elseif ~isa(theNetCDF, 'netcdf')
disp([' ## Not a "netcdf" object.'])
return
end
if ischar(theDim)
theDimname = theDim;
theDim = theNetCDF(theDimname);
if isempty(theDim)
disp([' ## Not a NetCDF dimension: "' theDimname '"'])
return
end
elseif ~isa(theDim, 'ncdim')
disp([' ## Not a NetCDF dimension.'])
end
if isrecdim(theDim)
close(theNetCDF)
disp([' ## Already is a NetCDF record-dimension: "' theDimname '"'])
return
end
% Open a randomly-named temporary file.
for i = 1:100
tmpname = ['temp' int2str(rand(1, 1)*10^9) '.nc'];
f = netcdf(tmpname, 'noclobber');
if ~isempty(f), break, end
end
if isempty(f)
close(theNetCDF)
disp([' ## Unable to open temporary NetCDF file.'])
return
end
% Define the record-dimension.
theDimname = name(theDim);
f(theDimname) = 0;
% Pour everything into the new file.
f < theNetCDF;
% Get full filenames.
theNetCDFname = name(theNetCDF)
theTmpname = name(f)
% Close both files.
close(theNetCDF)
close(f)
% Copy temporary file to original name.
fcopy(theTmpname, theNetCDFname)
% Delete temporary file.
delete(theTmpname)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -