libdspl-2.0
Библиотека алгоритмов цифровой обработки сигналов
writetxt_3d.c
1 /*
2 * Copyright (c) 2015-2024 Sergey Bakhurin
3 * Digital Signal Processing Library [http://dsplib.org]
4 *
5 * This file is part of DSPL.
6 *
7 * is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * DSPL is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
19 */
20 
21 
22 #include <stdio.h>
23 #include <stdlib.h>
24 #include <string.h>
25 #include "dspl.h"
26 
27 
28 #ifdef DOXYGEN_ENGLISH
29 
119 #endif
120 #ifdef DOXYGEN_RUSSIAN
121 
210 #endif
211 int DSPL_API writetxt_3d(double* x, int nx, double* y, int ny,
212  double* z, char* fn)
213 {
214  int k, n;
215  FILE* pFile = NULL;
216 
217  if(!x || !y || !z)
218  return ERROR_PTR;
219  if(nx < 1 || ny < 1)
220  return ERROR_SIZE;
221  if(!fn)
222  return ERROR_FNAME;
223 
224  pFile = fopen(fn, "w+");
225  if(pFile == NULL)
226  return ERROR_FOPEN;
227 
228  for(k = 0; k < ny; k++)
229  {
230  for(n = 0; n < nx; n++)
231  {
232  if(!isnan(z[n+k*nx]))
233  {
234  fprintf(pFile, "%+.12E\t%+.12E\t%+.12E\n",
235  x[n], y[k], z[n+k*nx]);
236 
237  }
238  }
239  fprintf(pFile, "\n");
240 
241  }
242  fclose(pFile);
243  return RES_OK;
244 }
245 
#define ERROR_FOPEN
Ошибка открытия файла. Файл с заданным именем не может быть открыт для записи и (или) чтения.
Definition: dspl.h:583
#define ERROR_PTR
Ошибка указателя. Данная ошибка означает, что один из обязательных указателей (память под который дол...
Definition: dspl.h:610
#define ERROR_SIZE
Ошибка при передаче размера массива. Данная ошибка возникает когда помимо указателя на массив входных...
Definition: dspl.h:618
#define ERROR_FNAME
Ошибка в имени файла. Необходимо задать корректное имя файла.
Definition: dspl.h:582
int writetxt_3d(double *x, int nx, double *y, int ny, double *z, char *fn)
Сохранить данные для построения 3D графика
Definition: writetxt_3d.c:211
#define RES_OK
Функция завершилась корректно. Ошибки отсутствуют.
Definition: dspl.h:558