How to save character matrix into NetCdf files?

4 views (last 30 days)
Hi everyone, I have character matrix A1
A1='101670 '
'101670 '
'101670 '
'101670 '
'101670 '
'101670 '
'101670 '
'101670 '
'101670 '
'101670 '
'101670 '
'101670 '
'101670 '
I am trying to save it into a netcdf file using ncreate and ncwrite.
nccreate('file_name.nc','A1',...
'Dimensions', {'x',size(A1,1),'y',size(A1,2)},...
'FillValue','disable');
ncwrite(file_name,'A1',A1);
But It is showing some error releted to conversion of between text and number.
Error using netcdflib
The NetCDF library encountered an error during execution of 'putVaraText' function -
'Attempt to convert between text & numbers (NC_ECHAR)'.
Error in netcdf.putVar (line 84)
netcdflib(funcstr,ncid,varid,varargin{:});
Error in internal.matlab.imagesci.nc/write (line 844)
netcdf.putVar(gid, varid,start, count, varData);
Error in ncwrite (line 75)
ncObj.write(varName, varData, start, stride);
Can someone help me how to save the character matrix into netcdf file?

Accepted Answer

Walter Roberson
Walter Roberson on 3 Aug 2022
The default data type is double. You need the "datatype" option.
Please recheck what x and y mean to you. You are using x as height of the matrix, but by convention y is height.
  1 Comment
Vijay Sagar
Vijay Sagar on 4 Aug 2022
Thank you Walter Roberson for kind response. It helped me. I have just includes datatype option, then it worked. As per the requirement, I interchange the 'x' and 'y' options, so there is issue here.
nccreate('file_name.nc','A1',...
'Dimensions', {'x',size(A1,1),'y',size(A1,2)},...
'FillValue','disable','Datatype','char');
ncwrite('file_name.nc','A1',A1);

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!