libdspl-2.0
Библиотека алгоритмов цифровой обработки сигналов
|
Функции | |
int | gnuplot_script (int argc, char *argv[], char *fn) |
Функция вызова скрипта пакета GNUPLOT для построения графика. Подробнее... | |
int | writebin (void *x, int n, int dtype, char *fn) |
Сохранить данные в бинарный файл Подробнее... | |
int | writetxt (double *x, double *y, int n, char *fn) |
Сохранить вещественные данные в текстовый файл Подробнее... | |
Подробное описание
Функции ввода и вывода данных. Запись и считывание данных в бинарные и текстовые файлы
Функции
◆ gnuplot_script()
int gnuplot_script | ( | int | argc, |
char * | argv[], | ||
char * | fn | ||
) |
Функция вызова скрипта пакета GNUPLOT для построения графика.
Данная функция использует параметры вызова программы argc
и argv[]
и обрабатывает их для построения графиков.
Механизм построения графиков при помощи данной функции следующий:
- Основная программа производит расчет данных и сохранение их в текстовых файлах.
- Для построения графика из текстовых файлов необходимо подготовить plt-скрипт - текстовый файл описывающий стиль отображения графика и файлы данных.
- Основная программа вызывает функцию
gnuplot_script
в которую транслирует параметры отображения и имя plt-скрипта для построения графика. В зависимости от передаваемых программой параметров график может быть построен в отдельном окне, или сохранен в png-файл.
- Аргументы
-
[in] argc Число параметров вызова основной программы.
Данный параметр указывает размер массива параметровargv[]
.
[in] argv[] Указатель на массив строк, передаваемых параметров.
argv[0]
– имя программы.
argv[1]
– параметр, который задает отображение графика пакетом GNUPLOT.
Параметрargv[1]
может принимать следующие значения:
--noplot
произвести расчет данных без построения графиков.
--plotwin
построение графика в отдельном окне.
--plotpng
построение графика в png-файл.
[in] fn Имя файла plt-скрипта построения графика.
- Возвращает
RES_OK
График построен успещно.
В противном случае возвращается код ошибки пакета GNUPLOT.
Рассмотрим пример. Пусть основная программа рассчитывает некоторые данные (отрезок синсоиды и косинусоиды) и сохраняет их в текстовые файлы dat/sine.txt
и dat/cosine.txt
:
В каталоге gnuplot
расположен plt-файл gnuplot/gnuplot_script.plt
:
После компиляции основной программы возможны следующие варианты:
- Программа вызвана без параметров. Тогда будет построен график в отдельном окне
- Программа вызвана с параметром
--noplot
. Построения графика не будет, но в дирикторииdat
будут сохранены данные в текстовых файлах.
- Программа вызвана с параметром
--plotwin
. Также будет построен график в отдельном окне.
- Программа вызвана с параметром
--plotpng
. График не будет выведен в отдельное окно, но будет создан графический файлimg/gnuplot_script.png
- Заметки
- Для изменения стиля отображения графика, цвета линий, подписей и др. необходимо модифицировать plt-файл. Документацию по оформлению графиков можно найти на сайте проекта GNUPLOT.
функция передает параметрplotterm
в plt-скрипт. Поэтому строкиif(!exists("plotterm")) plotterm = 'wxt' if(plotterm eq "pngcairo") set output 'img/gnuplot_script.png'
необходимо сохранить. Но имя файлаimg/gnuplot_script.png
может быть произвольным.
◆ writebin()
int writebin | ( | void * | x, |
int | n, | ||
int | dtype, | ||
char * | fn | ||
) |
Сохранить данные в бинарный файл
Функция сохраняет реальный или комплексный вектор данных размера [n x 1]
в бинарный файл 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.
- Аргументы
-
[in] x Указатель на массив данных.
Размер вектора[n x 1]
.
[in] n Размер вектора данных.
[in] dtype Тип данных.
Может принимать значения:
DAT_DOUBLE
– вещественные данные;
DAT_COMPLEX
– комплексные данные.
[in] fn Имя файла.
- Возвращает
RES_OK
Файл сохранен успешно.
В противном случае код ошибки:
- Заметки
- Данная функция производит запись в файл без потери точности, поэтому рекомендуется использовать ее для верификации данных DSPL.
Функция для чтения бинарного файла в GNU Octave и Matlab:
◆ 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 (см. функцию gnuplot_script).
- Аргументы
-
[in] x Указатель на первый вектор.
Размер вектора[n x 1]
.
[in] y Указатель на второй вектор.
Размер вектора[n x 1]
.
Может бытьNULL
.
Файл будет содержать только один столбец соответствующий векторуx
еслиy == NULL
.
[in] n Размер входных векторов.
[in] fn Имя файла.
- Возвращает
RES_OK
Файл сохранен успешно.
В противном случае код ошибки:
- Заметки
- Данная функция производит округление данных при записи в файл. Поэтому не рекомендуется использовать ее для верификации данных DSPL.
Документация по libdspl-2.0. Последние изменения: Пн 4 Ноя 2019 18:20:39. Создано системой
