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 で指定した各次元のインデックス間の間隔でデータを書き込みます。

すべて折りたたむ

変数が格納された NetCDF ファイルを作成し、その変数にデータを書き込みます。

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

nccreate('myfile.nc','pi');

次元をもたないスカラー データを変数 pi に書き込みます。

ncwrite('myfile.nc','pi',3.1416);

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

valPi = ncread('myfile.nc','pi')
valPi = 3.1416

NetCDF ファイルの変数の、指定した位置から始まる部分にデータを書き込みます。

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

nccreate('myncfile.nc','vmark',...
         'Dimensions', {'x',3,'y',6},...
         'FillValue','disable');     

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

ncwrite('myncfile.nc','vmark',3*eye(3));
varData = ncread('myncfile.nc','vmark');
display(varData)
varData = 3×6

     3     0     0     0     0     0
     0     3     0     0     0     0
     0     0     3     0     0     0

33 列の別の配列を、変数 vmark の 1 行目の 4 列目から始まる部分に追加します。次に、vmark をファイルから読み取って表示します。関数 ncrwrite は、この配列を [1 4] の位置から書き込みます。

ncwrite('myncfile.nc','vmark',5*eye(3),[1 4]);
varData = ncread('myncfile.nc','vmark');
display(varData)
varData = 3×6

     3     0     0     5     0     0
     0     3     0     0     5     0
     0     0     3     0     0     5

各次元に沿って、指定された変数インデックス間の間隔でデータを書き込みます。

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

nccreate('myncfile.nc','vmark',...
         'Dimensions', {'x',6,'y',6},...
         'FillValue','disable'); 

次に、33 列の数値配列を、変数 vmark の位置 [1 1] から、各次元に沿って変数インデックス間の間隔 2 で書き込みます。vmark をファイルから読み取って表示します。

ncwrite('myncfile.nc','vmark',3*eye(3),[1 1],[2 2]);
varData = ncread('myncfile.nc','vmark');
display(varData)
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 を使用してそれらを作成します。

データ型: char | string

変数名。NetCDF ファイルの変数名を含む文字ベクトルまたは string として指定します。

データ型: char | string

変数データ。数値データまたはテキストとして指定します。

メモ

テキスト データを含む変数値について、vardata 入力には ASCII エンコードされた文字のみが含まれていなければなりません。

変数 varname が存在する場合、ncwrite では vardata のデータ型が NetCDF 変数のデータ型と一致する必要があります。

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

  1. vardata から add_offset 属性の値を減算します。

  2. vardatascale_factor 属性の値で除算します。

  3. vardata にあるすべての NaN を、_FillValue 属性に格納されている値に置き換えます。この属性が存在しない場合、ncwrite は、NetCDF ライブラリで指定されたとおりに、この変数の埋め込み値を使用します。

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

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

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

データ型: double

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

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

データ型: double

R2011a で導入