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) функция в 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');

Смотрите также

|