Вставьте таблицу ASCII после текущего HDU
insertATbl(fptr,rowlen,nrows,ttype,tbcol,tform,tunit,extname)
insertATbl(fptr,rowlen,nrows,ttype,tbcol,tform,tunit,extname)
вставляет новое расширение таблицы ASCII сразу после текущего HDU. Любой после расширений смещен вниз, чтобы создать место для нового расширения. Если нет никакого другого после расширений, то новое табличное расширение просто добавлено в конец файла. Если файл FITS в настоящее время пуст затем, эта стандартная программа создает фиктивный первичный массив прежде, чем добавить таблицу к нему. Новое расширение становится текущим HDU. Если rowlen
0, затем CFITSIO вычисляет rowlen
по умолчанию на основе
tbcol
и ttype
значения.
Задайте tform
как массив ячеек из символьных векторов или массив строк, который может принять следующие формы. В каждом случае, 'w'
и 'ww'
представляйте ширины столбцов ASCII.
'Iw' | int16 столбец |
'Ай' | Столбец ASCII |
'Fww.dd' | Фиксированная точка с 'dd' цифры после десятичной точки |
'Eww.dd' | Одинарная точность с 'dd' цифры точности |
'Dww.dd' | Двойная точность с 'dd' цифры точности |
Бинарные таблицы рекомендуются вместо таблиц ASCII.
Эта функция соответствует fits_insert_atbl(ffitab)
функция в API библиотеки CFITSIO C.
Создайте таблицу 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');