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');