ncsize.m
来自「MATLAB中读写、处理科学数据文件格式NETCDF的程序」· M 代码 · 共 92 行
M
92 行
function [theResult, nvars, ngatts, recdim] = ncsize(self, index)
% ncitem/ncsize -- Sizes (dimensions) of an "ncitem" object.
% ncsize(self) returns the size of self, an object derived
% from the "ncitem" class. Depending on the class of self,
% this will be either its dimension-length, variable-size,
% or attribute-length. N.B. The "ncsize" vector may have
% have only one component, unlike a Matlab "size" vector,
% which always has more than one. Use "size" to get the
% Matlab analog. If self is a "netcdf" object, the returned
% value is [ndims nvars ngatts recdimid]. Optionally, four
% separate output variables can be requested.
% ncsize(self, index) returns the ncsize-component
% at the given index.
%
% Also see: ncitem/size, ncitem/name, ncitem/datatype.
% Copyright (C) 1998 Dr. Charles R. Denham, ZYDECO.
% All Rights Reserved.
% Disclosure without explicit written consent from the
% copyright owner does not constitute publication.
% Version of 13-Oct-1998 10:54:34.
% Updated 19-Jul-1999 10:59:21.
if nargin < 1, help(mfilename), return, end
result = [];
theNCid = ncid(self);
theClass = ncclass(self);
switch theClass
case 'ncitem'
theSize = [];
status = 0;
case 'netcdf'
[ndims, nvars, ngatts, recdim, status] = ...
ncmex('ncinquire', theNCid);
if nargout > 1
theSize = ndims;
else
theSize = [ndims nvars ngatts recdim];
end
case 'ncdim'
theSize = [];
theDimid = dimid(self);
if theDimid >= 0
[theDimname, theSize, status] = ...
ncmex('diminq', theNCid, theDimid);
end
case 'ncatt'
theSize = [];
theVarid = varid(self);
if theVarid >= -1
theAttname = name(self);
[theType, theSize, status] = ...
ncmex('attinq', theNCid, theVarid, theAttname);
end
case 'ncvar' % Overloaded by ncvar/ncsize.
theSize = [];
theVarid = varid(self);
if theVarid >= 0
[theVarname, theVartype, theVarndims, ...
theVardimids, theVarnatts, status] = ...
ncmex('varinq', theNCid, theVarid);
if status >= 0
theSize = -ones(1, length(theVardimids));
for i = 1:length(theVardimids)
[theDimname, theSize(i), status] = ...
ncmex('diminq', theNCid, theVardimids(i));
if status < 0, break, end
end
end
end
otherwise
theSize = [];
status = -1;
warning(' ## Illegal syntax.')
end
result = theSize;
if nargin > 1 & index <= length(result)
result = result(index);
end
if nargout > 0
theResult = result;
else
disp(result)
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?