Main Content

netcdf.defVar

Create netCDF variable

Syntax

varid = netcdf.defVar(ncid,varname,xtype,dimids)

Description

varid = netcdf.defVar(ncid,varname,xtype,dimids) creates a new variable in the data set identified by ncid.

  • varname is a character vector or string scalar that specifies the name of the variable.

  • xtype specifies the NetCDF data type of the variable, using one of these values.

    Value of xtypeMATLAB® Class
    "NC_DOUBLE"double
    "NC_FLOAT"single
    "NC_INT"int32
    "NC_SHORT"int16
    "NC_BYTE"int8
    "NC_CHAR"char
    "NC_INT64" (*)int64
    "NC_UINT64" (*)uint64
    "NC_UINT" (*)uint32
    "NC_USHORT" (*)uint16
    "NC_UBYTE" (*)uint8
    "NC_STRING" (*)string

    (*) These values of xtype are valid only for sources with format netcdf4.

    You can specify xtype as a numeric value returned by the netcdf.getConstant function.

    For attributes of the user-defined NC_VLEN types that correspond to MATLAB cell arrays, you can specify xtype as a numeric value returned by the netcdf.defVlen function.

  • dimids specifies a list of dimension IDs.

  • netcdf.defVar returns varid, a numeric identifier for the new variable.

This function corresponds to the nc_def_var function in the NetCDF library C API. Because MATLAB uses FORTRAN-style ordering, the fastest-varying dimension comes first and the slowest comes last. Any unlimited dimension is therefore last in the list of dimension IDs. This ordering is the reverse of that found in the C API. To use this function, you should be familiar with the NetCDF programming paradigm.

Examples

collapse all

Create a new NetCDF file, define a dimension in the file, and then define a variable on that dimension. In NetCDF files, you must create a dimension before you can create a variable. To run this example, you must have write permission in your current folder.

Create a new NetCDF file named foo.nc.

ncid = netcdf.create('foo.nc','NC_NOCLOBBER');

Define a dimension in the new file.

dimid = netcdf.defDim(ncid,'x',50);

Define a variable in the new file using netcdf.defVar.

varid = netcdf.defVar(ncid,'myvar','NC_DOUBLE',dimid)
varid = 
0

netcdf.defVar returns a numeric identifier for the new variable.

Close the file.

netcdf.close(ncid)

Tips

  • MATLAB interprets data as column major, but the netCDF C API interprets data as row major. Multidimensional data in the netCDF C API shows dimensions in the reverse of the order shown by MATLAB and consequently appears transposed.

Version History

expand all