![]() |
libdspl-2.0
Библиотека алгоритмов цифровой обработки сигналов
|
Функции | |
int | readbin (char *fn, void **x, int *pn, int *pm, int *dtype) |
Считать данные из бинарного файла Подробнее... | |
int | writebin (void *x, int n, int m, int dtype, char *fn) |
Сохранить данные в бинарный файл Подробнее... | |
int | writetxt (double *x, double *y, int n, char *fn) |
Сохранить вещественные данные в текстовый файл Подробнее... | |
int | writetxt_3d (double *x, int nx, double *y, int ny, double *z, char *fn) |
Сохранить данные для построения 3D графика Подробнее... | |
int | writetxt_int (int *x, int *y, int n, char *fn) |
Сохранить целочисленные данные в текстовый файл Подробнее... | |
Подробное описание
Функции ввода и вывода данных. Запись и считывание данных в бинарные и текстовые файлы
Функции
◆ readbin()
int readbin | ( | char * | fn, |
void ** | x, | ||
int * | pn, | ||
int * | pm, | ||
int * | dtype | ||
) |
Считать данные из бинарного файла
Функция считывает реальные или комплексные данные из бинарного файла с именем fn
.
Файл является универсальным для хранения как одномерных, так и двумерных массивов и имеет следующий формат:
type 4 байта типа int. Может принимать значение: DAT_DOUBLE, если x указатель на вектор вещественных чисел; DAT_COMPLEX, если x указатель на вектор комплексных чисел. n 4 байта типа int. Количество строк данных. m 4 байта типа int. Количество столбцов данных. При сохранении вектора всегда равно 1. data Данные в бинарном виде. Размер данных: n * m * sizeof(double), если dtype==DAT_DOUBLE; n * m * sizeof(complex_t), если dtype==DAT_COMPLEX.
Файл может быть использован для верификации алгоритмов сторонними пакетами, такими как GNU Octave, Matlab, Python и т.д.
- Аргументы
-
[in] fn Имя файла.
[in] x Указатель на адрес массива данных.
Данный указатель используется для возможности выделения памяти под считываемые из файла данные.
[in] pn Указатель на количество строк возвращаемого массива.
[in] pm Указатель на количество столбцов возвращаемого массива.
[in] dtype Тип данных.
Может принимать значения:
DAT_DOUBLE
– вещественные данные;
DAT_COMPLEX
– комплексные данные.
- Возвращает
RES_OK
— файл считан успешно.
В противном случае код ошибки.
- Заметки
- Данная функция производит считывание данных без потери точности, поэтому рекомендуется использовать ее для верификации DSPL.
Функция для записи бинарного файла в GNU Octave и Matlab:
Пример:
◆ writebin()
int writebin | ( | void * | x, |
int | n, | ||
int | m, | ||
int | dtype, | ||
char * | fn | ||
) |
Сохранить данные в бинарный файл
Функция сохраняет реальный или комплексный массив данных размера [n x m]
в бинарный файл fn
.
Файл является универсальным для хранения как одномерных, так и двумерных массивов и имеет следующий формат:
type 4 байта типа int. Может принимать значение: DAT_DOUBLE, если x указатель на вектор вещественных чисел; DAT_COMPLEX, если x указатель на вектор комплексных чисел. n 4 байта типа int. Количество строк данных. m 4 байта типа int. Количество столбцов данных. При сохранении вектора всегда равно 1. data Данные в бинарном виде. Размер данных: n * sizeof(double), если dtype==DAT_DOUBLE; n * sizeof(complex_t), если dtype==DAT_COMPLEX.
Файл может быть использован для верификации алгоритмов сторонними пакетами, такими как GNU Octave, Matlab, Python и т.д.
- Аргументы
-
[in] x Указатель на массив данных.
Размер вектора[n x 1]
.
[in] n Количество строк данных.
[in] m Количество столбцов данных.
[in] dtype Тип данных.
Может принимать значения:
DAT_DOUBLE
– вещественные данные;
DAT_COMPLEX
– комплексные данные.
[in] fn Имя файла.
- Возвращает
RES_OK
— файл сохранен успешно.
В противном случае код ошибки.
- Заметки
- Данная функция производит запись в файл без потери точности, поэтому рекомендуется использовать ее для верификации данных DSPL.
Функция для чтения бинарного файла в GNU Octave и Matlab:
См. определение в файле writebin.c строка 217
◆ writetxt()
int writetxt | ( | double * | x, |
double * | y, | ||
int | n, | ||
char * | fn | ||
) |
Сохранить вещественные данные в текстовый файл
Функция сохраняет вещественные данные в текстовый файл fn
.
Файл имеет следующий формат:
x[0] y[0] x[1] y[1] ... ... x[n-1] y[n-1]
Файл может быть использован для построения графика сторонней программой, например пакетом GNUPLOT (см. раздел Функции построения графиков.).
- Аргументы
-
[in] x Указатель на первый вектор.
Размер вектора[n x 1]
.
[in] y Указатель на второй вектор.
Размер вектора[n x 1]
.
Может бытьNULL
.
Файл будет содержать только один столбец соответствующий векторуx
еслиy == NULL
.
[in] n Размер входных векторов.
[in] fn Имя файла.
- Возвращает
RES_OK
— файл сохранен успешно.
В противном случае код ошибки:
- Заметки
- Данная функция производит округление данных при записи в файл. Поэтому не рекомендуется использовать ее для верификации данных DSPL.
См. определение в файле writetxt.c строка 122
◆ writetxt_3d()
int writetxt_3d | ( | double * | x, |
int | nx, | ||
double * | y, | ||
int | ny, | ||
double * | z, | ||
char * | fn | ||
) |
Сохранить данные для построения 3D графика
Функция сохраняет вещественные данные в текстовый файл fn
для построения 3D поверхности.
Функция \( z(x,y)\) описывается матрицей значений z[x[n], y[n]]
как это показано на рисунке

Матрица z
хранится в памяти по столбцам, как это показано красной стрелкой.
Файл имеет следующий формат:
x[0] y[0] z[0, 0] x[1] y[0] z[1, 0] x[2] y[0] z[2, 0] ... ... ... x[nx-1] y[0] z[nx-1, 0] x[0] y[1] z[0, 1] x[1] y[1] z[1, 1] x[2] y[1] z[2, 1] ... ... ... x[nx-1] y[1] z[nx-1, 1] ... ... ... ... ... ... ... ... ... x[0] y[ny-1] z[0, ny-1] x[1] y[ny-1] z[1, ny-1] x[2] y[ny-1] z[2, ny-1] ... ... ... x[nx-1] y[ny-1] z[nx-1, ny-1]
Таким образом, каждое значение матрицы z
записано отдельной строкой со соответствующими значениями x
и y
. Столбцы матрицы отделены пустой строкой.
Файл может быть использован для построения графика сторонней программой, например пакетом GNUPLOT (см. раздел Функции построения графиков.). Также данный формат поддерживается пакетами pgfplot3d издательской системы Latex.
- Аргументы
-
[in] x Указатель на вектор значений оси x
.
Размер вектора[nx x 1]
.
[in] nx Размер вектора оси x
.
[in] y Указатель на второй вектор значений оси y
.
Размер вектора[ny x 1]
.
[in] ny Размер вектора оси y
.
[in] z Указатель на матрицу значений функции z(x, y)
.
[in] fn Имя файла.
- Возвращает
RES_OK
— файл сохранен успешно.
В противном случае код ошибки:
Пример использования функции и посторения 3D поверхности приведен в следующем листинге:
Данная программа рассчитывает и строит поверхность функции
\[ z(x,y) = x \exp(-x^2 -y^2) \]
В каталоге dat
будет создан файл data3d.txt
.
Кроме того программа GNUPLOT произведет построение 3D поверхности по сохраненным в файл данным:

См. определение в файле writetxt_3d.c строка 214
◆ writetxt_int()
int writetxt_int | ( | int * | x, |
int * | y, | ||
int | n, | ||
char * | fn | ||
) |
Сохранить целочисленные данные в текстовый файл
Функция сохраняет целочисленные данные в текстовый файл fn
.
Файл имеет следующий формат:
x[0] y[0] x[1] y[1] ... ... x[n-1] y[n-1]
Файл может быть использован для построения графика сторонней программой, например пакетом GNUPLOT (см. раздел Функции построения графиков.).
- Аргументы
-
[in] x Указатель на первый вектор.
Размер вектора[n x 1]
.
[in] y Указатель на второй вектор.
Размер вектора[n x 1]
.
Может бытьNULL
.
Файл будет содержать только один столбец соответствующий векторуx
еслиy == NULL
.
[in] n Размер входных векторов.
[in] fn Имя файла.
- Возвращает
RES_OK
— файл сохранен успешно.
В противном случае код ошибки:
См. определение в файле writetxt_int.c строка 115
Документация по libdspl-2.0. Последние изменения: Ср 5 Янв 2022 12:44:35. Создано системой