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

138 wiersze
4.7 KiB
Plaintext
Czysty Wina Historia

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/*!
\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
*/