Main Content

matlab.io.fits.insertATbl

現在の HDU の後ろへの ASCII テーブルの挿入

構文

insertATbl(fptr,rowlen,nrows,ttype,tbcol,tform,tunit,extname)

説明

insertATbl(fptr,rowlen,nrows,ttype,tbcol,tform,tunit,extname) は、現在の HDU の直後に、新しい ASCII テーブル拡張を挿入します。以降のすべての拡張は、新しい拡張用の空間を作るために、下方向にシフトされます。以降の拡張が他にない場合、新しいテーブル拡張は単純にファイルの終わりに追加されます。現在 FITS ファイルが空の場合、このルーチンではテーブルにダミーのプライマリ配列が作成されてから、テーブルがその配列に追加されます。新しい拡張は現在の HDU になります。rowlen が 0 の場合、CFITSIO は tbcol 値と ttype 値に基づいて既定の rowlen を計算します。

tform は、次のいずれかの形式の文字ベクトルの cell 配列、または string 配列として指定します。それぞれの 'w' および 'ww' は ASCII 列の幅を表します。

'Iw'int16
'Aw'ASCII 列
'Fww.dd'小数点以下 'dd' 桁の固定小数点
'Eww.dd'精度 'dd' 桁の単精度
'Dww.dd'精度 'dd' 桁の倍精度

ASCII テーブルではなく、バイナリ テーブルが推奨されます。

この関数は、CFITSIO ライブラリ C API の関数 fits_insert_atbl(ffitab) に相当します。

2 つのイメージ間に ASCII テーブルを作成します。

import matlab.io.*
fptr = fits.createFile('myfile.fits');
fits.createImg(fptr,'uint8',[20 30]);
fits.createImg(fptr,'int16',[30 40]);
fits.movRelHDU(fptr,-1);
ttype = {'Name','Short','Fix','Double'};
tbcol = [1 17 28 43];
tform = {'A15','I10','F14.2','D12.4'};
tunit = {'','m**2','cm','km/s'};
fits.insertATbl(fptr,0,0,ttype,tbcol,tform,tunit,'my-table');
fits.writeCol(fptr,1,1,char('abracadabra','hocus-pocus'));
fits.writeCol(fptr,2,1,int16([0; 1]));
fits.writeCol(fptr,3,1,[12.4; 4/3]);
fits.writeCol(fptr,4,1,[12.4; 4e8/3]);
fits.closeFile(fptr);
fitsdisp('myfile.fits','mode','min');