Main Content

ncwrite

netCDF ファイルにデータを書き込む

    説明

    ncwrite(filename,varname,vardata) は、vardata のテキストまたは数値データを、netCDF ファイル filename の既存の変数 varname に書き込みます。

    関数 ncwrite は、vardata のデータをこの変数の先頭から書き込み、必要があれば制限のない次元を自動的に拡張します。制限のない次元の詳細については、関数 nccreateDimensions 引数を参照してください。

    ncwrite(filename,varname,vardata,start) は、start で指定した位置から、データを既存の変数に書き込みます。既存の変数にデータを付加する、あるいは部分データを書き込む場合は、この構文を使用します。

    ncwrite(filename,varname,vardata,start,stride) は、stride で指定した各次元のインデックス間の間隔でデータを書き込みます。

    すべて折りたたむ

    c という変数が格納された myfile.nc というファイルを作成します。

    nccreate("myfile.nc","c")

    スカラー値を変数に書き込みます。

    ncwrite("myfile.nc","c",299792458)

    ファイルから変数を読み取って表示します。

    speedOfLight = ncread("myfile.nc","c")
    speedOfLight = 299792458
    

    3 行 6 列の空の数値変数 vmark をもつファイル myfile.nc を作成します。欠落した変数や空の変数に対する既定の埋め込み値を無効にするには、名前と値の引数 FillValue"disable" に設定します。

    nccreate("myfile.nc","vmark", ...
             "Dimensions",{"x",3,"y",6},"FillValue","disable")

    3 行 3 列の配列を変数に書き込み、vmark をファイルから読み取って表示します。関数 ncwrite は、変数の先頭からデータを書き込みます。

    ncwrite("myfile.nc","vmark",3*eye(3))
    varData = ncread("myfile.nc","vmark")
    varData = 3×6
    
         3     0     0     0     0     0
         0     3     0     0     0     0
         0     0     3     0     0     0
    
    

    3 行 3 列の別の配列を、変数 vmark の 1 行目の 4 列目から始まる部分に追加します。関数 ncwrite は、この配列を [1 4] の位置から書き込みます。

    ncwrite("myfile.nc","vmark",5*eye(3),[1 4])
    varData = ncread("myfile.nc","vmark")
    varData = 3×6
    
         3     0     0     5     0     0
         0     3     0     0     5     0
         0     0     3     0     0     5
    
    

    6 行 6 列の空の数値変数 vmark をもつファイル myfile.nc を作成します。欠落した変数や空の変数に対する既定の埋め込み値を無効にするには、名前と値の引数 FillValue"disable" に設定します。

    nccreate("myfile.nc","vmark", ...
             "Dimensions", {"x",6,"y",6},"FillValue","disable") 

    3 行 3 列の数値配列を、変数 vmark の位置 [1 1] から、各次元に沿って変数インデックス間の間隔 2 で書き込みます。

    ncwrite("myfile.nc","vmark",3*eye(3),[1 1],[2 2])
    varData = ncread("myfile.nc","vmark")
    varData = 6×6
    
         3     0     0     0     0     0
         0     0     0     0     0     0
         0     0     3     0     0     0
         0     0     0     0     0     0
         0     0     0     0     3     0
         0     0     0     0     0     0
    
    

    入力引数

    すべて折りたたむ

    既存の netCDF ファイルのファイル名。string スカラーまたは文字ベクトルとして指定します。

    netCDF ファイルが存在しない場合は、まず関数 nccreate を使用して作成します。

    例: "myFile.nc"

    変数名。netCDF ファイル内の変数の名前を含む string スカラーまたは文字ベクトルとして指定します。

    filenamenetcdf4 形式のファイルを指定した場合、varname を完全修飾名として指定することで、グループ階層内の変数の位置を指定できます。

    変数が存在しない場合は、まず関数 nccreate を使用して作成します。

    例: "myVar"

    例: "/myGrp/mySubGrp/myNestedVar"

    変数データ。数値配列またはテキストとして指定します。vardata の値は、netCDF 変数 varname のデータ型と適合していなければなりません。

    変数 varname_FillValuescale_factor、または add_offset のいずれかの属性をもつ場合、関数 ncwrite ではデータが double データ型と適合していることが必要です。vardata を netCDF データ型にキャストするため、関数 ncwritevardata を書き込む前に次の属性の規則を順番に適用します。

    1. add_offset 属性が存在する場合、ncwrite は、vardata の値から add_offset 属性の値を減算します。

    2. scale_factor 属性が存在する場合、ncwrite は、vardata の値を scale_factor 属性の値で除算します。

    3. _FillValue 属性が存在する場合、ncwrite は、vardataNaN 値を _FillValue 属性のそれと等しい値に置き換えます。

    メモ

    NC_STRING 型の変数の場合、vardata に UTF-8 エンコード文字を含めることができます。NC_CHAR 型の変数の場合、vardata は ASCII エンコード文字のみを含む必要があります。

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

    変数内のデータの開始位置。正の整数の数値ベクトルとして指定します。N 次元の変数について、1 ベースのインデックスを含む、長さ N のベクトルとして start を指定します。

    start を指定しない場合、関数 ncwrite は各次元に沿って、最初のインデックスから変数の書き込みを開始します。

    例: [2 1 3]

    データ型: double

    各次元に沿った変数インデックス間の間隔。整数の数値ベクトルとして指定します。N 次元の変数について、長さ N のベクトルとして stride を指定します。ベクトル stride の要素は、変数の次元に、同じ順序で対応しています。値が 1 の場合、対応する次元内の netCDF 変数の隣接する値にアクセスします。値が 2 の場合、対応する次元内の値に 1 つおきにアクセスし、以降同様に繰り返されます。

    stride を指定しない場合、関数 ncwrite は各次元に沿って既定の間隔 1 でデータを書き込みます。

    例: [2 10 1]

    データ型: double

    ヒント

    • MATLAB® は多次元データを列優先として解釈しますが、netCDF C API は多次元データを行優先として解釈します。netCDF C API の多次元データは、MATLAB で示される順序の逆順で次元を示すため、結果として転置されて表示されます。

    バージョン履歴

    R2011a で導入

    すべて展開する