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