matlab.io.fits.createTbl
创建新的 ASCII 或二进制表扩展
语法
fptr = createTbl(fptr,tbltype,nrows,ttype,tform,tunit,extname)
说明
fptr = createTbl(fptr,tbltype,nrows,ttype,tform,tunit,extname) 创建新的 ASCII 或二进制表扩展。tbltype 必须为 'binary' 或者 'ascii'。nrows 参量提供要在表中创建的初始行数,正常情况下应为零。tunit 指定每一列的单位,但是如果不需要单位,它可以是空元胞数组。extname 指定扩展名称,但可以忽略。
tform 包含列的格式,指定为字符向量元胞数组或字符串数组。对于二进制表,值应采用 'rt' 的形式,其中 'r' 是重复计数,'t' 是以下字母之一。
'A' | ASCII 字符 |
'B' | 字节或 uint8 |
'C' | 复数(单精度) |
'D' | 双精度 |
'E' | 单精度 |
'I' | int16 |
'J' | int32 |
'K' | int64 |
'L' | 逻辑值 |
'M' | 复数(双精度) |
'X' | 位 (int8 个零和一) |
如果 tform 值包括 '1Pt' 或 '1Qt' 形式,其中 't' 按上面所述指定数据类型,则也可以将列指定为具有变量宽度。
对于 ASCII 表,tform 包含采用以下形式的值:
| 'Iw' | 宽度为 'w' 的 int16 列 |
| 'Aw' | 宽度为 'w' 的 ASCII 列 |
| 'Fww.dd' | 定点 |
| 'Eww.dd' | 宽度为 'ww'、精度为 'dd' 的单精度值 |
| 'Dww.dd' | 宽度为 'ww'、精度为 'dd' 的双精度值 |
此函数对应于 CFITSIO 库 C API 中的 fits_create_tbl(ffcrtb) 函数。
示例
创建一个二进制表。第一列包含字符串,每个字符串九个字符。第二列包含四元素位序列。第三列包含三元素 uint8 值序列。第四列包含双精度标量。
import matlab.io.* fptr = fits.createFile('myfile.fits'); ttype = {'Col1','Col2','Col3','Col4'}; tform = {'9A','4X','3B','1D'}; tunit = {'m/s','kg','kg/m^3','candela'}; fits.createTbl(fptr,'binary',10,ttype,tform,tunit,'my-table'); fits.closeFile(fptr); fitsdisp('myfile.fits');
创建一个包含两列的表,其中,第一列包含单个双精度值,但第二列包含可变长度的双精度值。
import matlab.io.* fptr = fits.createFile('myfile2.fits'); ttype = {'Col1','Col2'}; tform = {'1D','1PD'}; fits.createTbl(fptr,'binary',0,ttype,tform); fits.closeFile(fptr); fitsdisp('myfile2.fits');
另请参阅
insertATbl | insertBTbl | readCol | writeCol | createImg