"Error: using netcdflib 'dimids' should be double precision" when trying to create variable in NetCDF file
1 次查看(过去 30 天)
显示 更早的评论
I'm trying to create a NetCDF file of some timeseries data. I've successfully defined the dimensions and global attributes for my data, but when I try to write my first variable, I get: Error using netcdflib 'dimids' should be double precision.
This is the code I have written to create the variable, and it's the third line that produces the error:
netcdf.reDef(ncid);
nccreate('TVC_Jan2018.nc','Shortwave');
varid = netcdf.defVar(ncid,'Shortwave','double',['lon',1,'lat',1,'time',744]);
nccreate(ncid,varid,'Dimensions',{'lon',1,'lat',1,'time',sz},'Format','classic','Datatype','double');
netcdf.putAtt(ncid,varid,'long_name','Incoming Shortwave Raditation');
netcdf.putAtt(ncid,varid,'units','W m^–2');
netcdf.putAtt(ncid,varid,'mode','time varient');
for t = 1:sz
ncwrite('TVC_Jan2018.nc','Shortwave',MetData_Jan(t,5));
end
netcdf.endDef(ncid);
I've googled and the default precision for numbers in Matlab should be double, so I have no idea where this error is coming from.
2 个评论
Nitish Nalan
2020-8-28
Hi Victoria,
Could you please try the script mentioned below, and let me know if this helps you.
clc
clear
lon = 1;
lat = 1;
time = 744
mcid = netcdf.create('Example_test.nc','NC_WRITE');
dimLon = netcdf.defDim(mcid,'lon',lon);
dimLat = netcdf.defDim(mcid,'lat',lat);
dimTime = netcdf.defDim(mcid,'time',time);
varid = netcdf.defVar(mcid,'Shortwave','NC_DOUBLE',[dimLon dimLat dimTime]);
netcdf.endDef(mcid);
ncdisp('Example_test.nc');
回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 NetCDF 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!