メインコンテンツ

netcdf.putAtt

netCDF 属性にデータを書き込む

    説明

    netcdf.putAtt(ncid,varid,attname,attvalue) は、ncid で指定された netCDF ファイルまたはグループ内の、varid で識別される netCDF 変数に、値 attvalue をもつ attname という名前の属性を書き込みます。書き込まれる属性の値は、attvalue の MATLAB® データ型に最良に適合する netCDF データ型の値です。MATLAB による最良の適合の判別方法の詳細については、MATLAB から NetCDF へのデータ型の変換を参照してください。

    netcdf.putAtt(ncid,varid,attname,attvalue,xtype) は、attvaluextype で指定されたデータ型として書き込みます。

    すべて折りたたむ

    サンプルの netCDF ファイルのコピーを作成し、そのコピーを書き込み用に開きます。avogadros_number 変数に属性を書き込みます。

    copyfile("example.nc","myfile.nc")
    ncid = netcdf.open("myfile.nc","NC_WRITE");
    varid = netcdf.inqVarID(ncid,"avogadros_number");
    
    attname = "significant_figures";
    attvalue = 9;
    netcdf.putAtt(ncid,varid,attname,attvalue)

    netcdf.getAtt 関数を使用して、値が期待どおりに書き込まれたことを確認します。

    netcdf.getAtt(ncid,varid,attname)
    ans = 
    9
    

    netCDF ファイルを閉じます。

    netcdf.close(ncid)

    netCDF ファイルを作成し、開きます。

    ncid = netcdf.create("myfile.nc","NOCLOBBER");

    グローバル属性を書き込みます。varidnetcdf.getConstant("NC_GLOBAL") を使用します。

    varid = netcdf.getConstant("NC_GLOBAL");
    
    attname = "creation_time";
    attvalue = string(datetime("now"));
    netcdf.putAtt(ncid,varid,attname,attvalue)

    netcdf.getAtt 関数を使用して、値が期待どおりに書き込まれたことを確認します。

    netcdf.getAtt(ncid,varid,attname)
    ans = 
    '09-Aug-2025 11:53:13'
    

    netCDF ファイルを閉じます。

    netcdf.close(ncid)

    netCDF-4 ファイルを作成し、開きます。

    ncid = netcdf.create("myfile.nc","NETCDF4");

    MATLAB string 配列を使用してグローバル属性を書き込みます。varidnetcdf.getConstant("NC_GLOBAL") を使用します。

    varid = netcdf.getConstant("NC_GLOBAL");
    
    attname = "temperature_units";
    attvalue = ["°F" "°C"];
    netcdf.putAtt(ncid,varid,attname,attvalue)

    netcdf.getAtt 関数を使用して、値が期待どおりに書き込まれたことを確認します。

    netcdf.getAtt(ncid,varid,attname)
    ans = 1×2 string
        "°F"    "°C"
    
    

    netCDF ファイルを閉じます。

    netcdf.close(ncid)

    サンプルの netCDF ファイルのコピーを作成し、そのコピーを書き込み用に開きます。temperature 変数に属性を書き込みます。xtype"NC_STRING" として指定します。

    copyfile("example.nc","myfile.nc")
    ncid = netcdf.open("myfile.nc","NC_WRITE");
    varid = netcdf.inqVarID(ncid,"temperature");
    
    attname = "Month";
    attvalue = "March";
    xtype = "NC_STRING";
    netcdf.putAtt(ncid,varid,attname,attvalue,xtype)

    netcdf.getAtt 関数を使用して、値が期待どおりに書き込まれたことを確認します。

    netcdf.getAtt(ncid,varid,attname)
    ans = 
    "March"
    

    netCDF ファイルを閉じます。

    netcdf.close(ncid)

    入力引数

    すべて折りたたむ

    netCDF ソースの識別子。非負の整数スカラーとして指定します。netCDF ソースとして netCDF ファイルまたは netCDF グループを使用できます。

    データ型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

    netCDF 変数の識別子。非負の整数スカラーとして指定します。

    グローバル属性を書き込むには、varidnetcdf.getConstant("NC_GLOBAL") として指定します。

    データ型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

    書き込む属性名。string スカラーまたは文字ベクトルとして指定します。

    例: "myAtt"

    属性値。数値配列、テキスト、または cell 配列として指定します。

    メモ

    attvalue に複数の次元がある場合、netcdf.putAtt 関数は attvalue を列優先の順序でフラットにしてから属性値を書き込みます。たとえば、attvalue[1 2 3; 4 5 6] として指定した場合と、attvalue[1 4 2 5 3 6] として指定した場合とでは、どちらでも同じ効果が得られます。

    また、NC_VLEN 型の属性では、attvalue に複数の次元をもつエントリが含まれている場合、netcdf.putAtt 関数は列優先の順序でそうしたエントリをフラットにしてから値を書き込みます。たとえば、NC_VLEN 型の属性では、attvalue を以下のように指定した場合と、

    {[0.5 0.3]; [0 -0.7 5.2; 4.6 2.5 1.8]}

    attvalue を以下のように指定した場合とでは、

    {[0.5; 0.3] [0; 4.6; -0.7; 2.5; 5.2; 1.8]}

    同じ効果が得られます。

    データ型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | char | string | cell

    NetCDF データ型。string スカラー、文字ベクトル、または非負の整数スカラーとして指定します。

    • xtype を次の string スカラーまたは文字ベクトルの 1 つとして指定できます。

      xtype の値MATLAB クラス
      "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

      (*) これらの xtype の値は netcdf4 形式のソースでのみ有効です。

    • xtype は、netcdf.getConstant 関数によって返された数値として指定できます。

    • MATLAB cell 配列に対応するユーザー定義の NC_VLEN 型の属性の場合、netcdf.defVlen 関数によって返された数値として xtype を指定できます。

    データ型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | char | string

    詳細

    すべて折りたたむ

    ヒント

    • netcdf.putAtt を使用して netCDF-4 ファイルの変数の _FillValue 属性を設定することはできません。変数の埋め込み値を設定するには、netcdf.defVarFill 関数を使用します。

    • この関数は、netCDF ライブラリ C API のいくつかの (nc_put_att_*) 関数に相当します。

      この関数を使用するには、netCDF C インターフェイスに関する知識が必要です。netCDF のドキュメンテーションは、netCDF の Web サイトで参照できます。

    バージョン履歴

    R2008b で導入

    すべて展開する