Main Content

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

另请参阅

|