matlab.io.fits.writeCol
向 ASCII 或二进制表列写入元素
语法
writeCol(fptr,colnum,firstrow,coldata)
说明
writeCol(fptr,colnum,firstrow,coldata)
向 ASCII 或二进制表扩展列写入元素。
注意
如果您使用 writeCol
函数将复数数据写入到由非复数数据类型定义的列中,writeCol
将忽略虚部,仅将实部写入到该列中。要正确写入复数数据,请使用 createTbl
函数的 tform
参数正确定义表列的格式。
如果将数据行写入可变长度的字段,则 coldata
必须是元胞数组。
此函数对应于 CFITSIO 库 C API 中的 fits_write_col (ffpcl)
函数。
示例
写入具有 ASCII、uint8
、双精度和可变长度双精度列的表。
import matlab.io.* fptr = fits.createFile('myfile.fits'); ttype = {'Col1','Col2','Col3','Col4'}; tform = {'3A','3B','1D','1PD'}; tunit = {'m/s','kg/m^3','candela','parsec'}; fits.createTbl(fptr,'binary',0,ttype,tform,tunit,'my-table'); fits.writeCol(fptr,1,1,['dog'; 'cat']); fits.writeCol(fptr,2,1,[0 1 2; 3 4 5; 6 7 8; 9 10 11]); fits.writeCol(fptr,3,1,[1; 2; 3; 4]); fits.writeCol(fptr,4,1,{1;[1 2];[1 2 3];[1 2 3 4]}); fits.closeFile(fptr); fitsdisp('myfile.fits','index',2,'mode','full');
写入具有逻辑、位、双精度和可变长度复数单精度列的表。
import matlab.io.* fptr = fits.createFile('myfile.fits'); ttype = {'Col1','Col2','Col3','Col4'}; tform = {'2L','3X','1D','1PC'}; tunit = {'','kg/m^3','candela','parsec'}; fits.createTbl(fptr,'binary',0,ttype,tform,tunit,'my-table'); fits.writeCol(fptr,1,1,[false false; true false]); fits.writeCol(fptr,2,1,int8([0 1 1; 1 1 1; 1 1 1; 1 0 1])); fits.writeCol(fptr,3,1,[1; 2; 3; 4]); data = cell(4,1); data{1} = single(1); data{2} = single(1+2j); data{3} = single([1j 2 3+j]); data{4} = single([1 2+3j 3 4]); fits.writeCol(fptr,4,1,data); fits.closeFile(fptr); fitsdisp('myfile.fits','index',2,'mode','full');