From: <aba...@us...> - 2012-06-11 13:34:37
|
Revision: 10614 http://octave.svn.sourceforge.net/octave/?rev=10614&view=rev Author: abarth93 Date: 2012-06-11 13:34:31 +0000 (Mon, 11 Jun 2012) Log Message: ----------- Modified Paths: -------------- trunk/octave-forge/main/octcdf/inst/ncread.m Added Paths: ----------- trunk/octave-forge/main/octcdf/inst/ncinfo.m Added: trunk/octave-forge/main/octcdf/inst/ncinfo.m =================================================================== --- trunk/octave-forge/main/octcdf/inst/ncinfo.m (rev 0) +++ trunk/octave-forge/main/octcdf/inst/ncinfo.m 2012-06-11 13:34:31 UTC (rev 10614) @@ -0,0 +1,57 @@ +% finfo = ncinfo(filename) +% vinfo = ncinfo(filename,varname) +% return information about variable varname in netCDF +% file filename + +function info = ncinfo(filename,varname) + +nc = netcdf(filename,'r'); +if nargin == 1 + info.Filename = filename; + + variables = var(nc); + for i=1:length(variables) + info.Variables(i) = ncinfo_var(nc,filename,name(variables{i})); + end +elseif nargin == 2 + info = ncinfo_var(nc,filename,varname); +end + +close(nc); +end + +function vinfo = ncinfo_var(nc,filename,varname) + + +nv = nc{varname}; + +vinfo.Size = fliplr(size(nv)); +vinfo.Filename = filename; +vinfo.Dimensions = {}; +vinfo.Name = varname; + +dims = fliplr(dim(nv)); + +for i=1:length(dims) + vinfo.Dimensions{i} = name(dims{i}); +end + + +na = att(nv); + +%vinfo.Attributes = []; + +for j=1:length(na) + tmp = struct(); + nm = name(na{j}); + + tmp.Name = nm; + tmp.Value = na{j}(:); + vinfo.Attributes(j) = tmp; +end + +vinfo.FillValue = fillval(nv); + + +end + Modified: trunk/octave-forge/main/octcdf/inst/ncread.m =================================================================== --- trunk/octave-forge/main/octcdf/inst/ncread.m 2012-06-11 10:31:23 UTC (rev 10613) +++ trunk/octave-forge/main/octcdf/inst/ncread.m 2012-06-11 13:34:31 UTC (rev 10614) @@ -7,8 +7,11 @@ nc = netcdf(filename,'r'); nv = nc{varname}; sz = size(nv); sz = sz(end:-1:1); -nd = ndims(nv); +% number of dimenions +%nd = length(sz); +nd = length(dim(nv)); + if nargin == 2 start = ones(1,nd); count = inf*ones(1,nd); @@ -36,7 +39,7 @@ for i=1:nd subsr.subs{nd-i+1} = start(i):stride(i):endi(i); end -start,endi +%start,endi x = subsref(nv,subsr); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |