Вставьте таблицу 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
по умолчанию на основе значений ttype
и tbcol
.
Задайте 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');