libdspl-2.0/dspl/dox/ru/inout.dox

138 wiersze
4.7 KiB
Plaintext
Czysty Zwykły widok Historia

2018-03-18 20:11:51 +00:00
/*!
\ingroup IN_OUT_GROUP
\fn int writebin(void* x, int n, int dtype, char* fn)
\brief Сохранить данные в бинарный файл
Функция сохраняет реальный или комплексный вектор данных
размера `[n x 1]` в бинарный файл `fn`. <BR><BR>
Файл является универсальным для хранения как одномерных,
так и двумерных массивов и имеет следующий формат: <BR><BR>
type 4 байта типа `int`. <BR>
Может принимать значение:<BR>
`DAT_DOUBLE`, если адрес `x` указывает на вектор вещественных чисел; <BR>
`DAT_COMPLEX`, если адрес `x` указывает на вектор комплексных чисел.<BR><BR>
`n` 4 байта типа `int`. <BR>
Количество строк данных. <BR><BR>
`m` 4 байта типа `int`.<BR>
Количество столбцов данных. <BR>
При сохранении вектора всегда равно 1.<BR><BR>
data после идут данные в бинарном виде.<BR>
Размер данных:<BR>
`n * sizeof(double)`, если `dtype==DAT_DOUBLE`;<BR>
`n * sizeof(complex_t)`, если `dtype==DAT_COMPLEX`.<BR><BR>
Файл может быть использован для верификации алгоритмов сторонними пакетами,
такими как GNU Octave или Matlab.<BR><BR>
\param[in] x Указатель на массив данных. <BR>
Размер вектора `[n x 1]`.<BR><BR>
\param[in] n Размер вектора данных.<BR><BR>
\param[in] dtype Тип данных.<BR>
Может принимать значения: `DAT_DOUBLE` или `DAT_COMPLEX`.<BR><BR>
\param[in] fn Имя файла.<BR><BR>
\return
`RES_OK` Файл сохранен успешно.<BR>
В противном случае \ref ERROR_CODE_GROUP "код ошибки":<BR>
\note
Данная функция производит запись в файл без потери точности,
поэтому рекомендуется использовать ее для верификации данных DSPL.<BR><BR>
Функция для чтения бинарного файла в GNU Octave и Matlab:
\code
function [dat, n, m] = readbin(fn)
fid = fopen(fn);
if(~fid)
error('cannot to open file');
end
type = fread(fid, 1, 'int32');
n = fread(fid, 1, 'int32');
m = fread(fid, 1, 'int32');
if(type==0)
dat = fread(fid, [n*m, 1], 'double');
end
if(type==1)
y = fread(fid, [n*m*2, 1], 'double');
dat = y(1:2:end) + 1i * y(2:2:end);
end
dat = reshape(dat, n, m);
fclose(fid);
end
\endcode
\author
Бахурин Сергей.
www.dsplib.org
*/
/*!
\ingroup IN_OUT_GROUP
\fn int writetxt(double* x, double *y, int n, char* fn)
\brief Сохранить вещественные данные в текстовый файл
Функция сохраняет вещественные данные в текстовый файл `fn`. <BR>
Файл имеет следующий формат<BR>
\verbatim
x[0] y[0]
x[1] y[1]
...
x[n-1] y[n-1]
\endverbatim
Файл может быть использован для построения графика сторонней программой.<BR><BR>
\param[in] x Указатель на первый вектор. <BR>
Размер вектора `[n x 1]`.<BR><BR>
\param[in] y Указатель на второй вектор. <BR>
Размер вектора `[n x 1]`. <BR>
Может быть `NULL`. <BR>
Файл будет содержать только один столбец соответствующий
вектору `x` если `y == NULL`.<BR><BR>
\param[in] n Размер входных векторов.<BR><BR>
\param[in] fn Имя файла.<BR><BR>
\return
`RES_OK` Файл сохранен успешно.<BR>
В противном случае \ref ERROR_CODE_GROUP "код ошибки":<BR>
\note
Данная функция производит округление данных при записи в файл.
Поэтому не рекомендуется использовать ее для верификации данных DSPL.
\author
Бахурин Сергей.
www.dsplib.org
*/