matlab.io.fits.insertATbl

Вставьте таблицу 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) функция в CFITSIO library C API.

Примеры

Составьте таблицу 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');

См. также

|