⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 make_raster.cc

📁 模糊聚类分析的源程序!
💻 CC
字号:
/********************************************************//*   filename: make_raster.cc                           *//*                                                      *//********************************************************//* programmed by: Oliver Wagner                         *//* last change: 22-08-95                                *//********************************************************/#include <stdio.h>#include <stdlib.h>#include <math.h>//#include <string.h>#include <time.h>#include "daten.h"#include "vektor.h"#include "matrix.h"int Dim, i, j, k, Index, Punktanzahl = 1, Punkt, Punktstep = 1;Daten_Typ Typ;char Name[30], So = 'z';FILE *File;time_t timer;main (int argc, char *argv[]){  if (argc < 2) {    printf ("Dim,\n");    printf ("Dim_1-Punktanzahl,Dim_1-Anfang,Dim_1-Ende,Dim_1-Jitter(0-1),\n");    printf ("...\n");    printf ("Dim_n-Punktanzahl,Dim_n-Anfang,Dim_n-Ende,Dim_n-Jitter(0-1),\n");    printf ("Name\n");    exit (0);  }  srand ((unsigned) time (&timer));  Index = 1;  sscanf (argv[Index++], "%d", &Dim);  So = (char) ((int) So + 1 - Dim);  if (Dim > 0) {    DVektor Jitter (Dim, 0, NULL), Schritt (Dim, 0, NULL), Anfang (Dim, 0, NULL),      Ende (Dim, 0, NULL);    IVektor Anzahl (Dim, NULL);    double Buffer;    for (i = 0; i < Dim; i++) {      sscanf (argv[Index++], "%d", &Anzahl[i]);      sscanf (argv[Index++], "%lf", &Anfang[i]);      sscanf (argv[Index++], "%lf", &Ende[i]);      sscanf (argv[Index++], "%lf", &Jitter[i]);      Schritt[i] = (Ende[i] - Anfang[i]) / Anzahl[i];      Jitter[i] = Jitter[i] * Schritt[i];      Punktanzahl *= Anzahl[i];    }    sscanf (argv[Index++], "%s", Name);    File = fopen (Name, "w");    fprintf (File, "normal\n");    /* Punkte berechnen */    DVektorArray Punkte (Dim, Punktanzahl, NULL);    for (i = 0; i < Dim; i++) {      Punkt = 0;      do {	Buffer = (Schritt[i] - Jitter[i]) / 2;	for (j = 0; j < Anzahl[i]; j++) {	  Punkte[Punkt][i] = Buffer 		         + Jitter[i] * (((double) rand ()) / (double) MAXINT);	  Buffer += Schritt[i];	  Punkt = (Punkt + Punktstep) % (Punktanzahl - 1);	  if (Punkt == 0)	    break;	}      } while (Punkt != 0);      Punkte[Punktanzahl - 1][i] = Buffer 			  + Jitter[i] * (((double) rand ()) / (double) MAXINT);      Punktstep *= Anzahl[i];    }    /* Jetzt die Punkte in die Datei schreiben */    fprintf (File, "%d %d %d\n", Punktanzahl, Dim, 0);    for (i = 0; i < Dim; i++) {      fprintf (File, "%c ", So);      So = (char) (((int) So) + 1);    }    fprintf (File, "\n");    for (i = 0; i < Punktanzahl; i++) {      for (j = 0; j < Dim; j++)	fprintf (File, "%f ", Punkte[i][j]);      fprintf (File, "\n");    }  } else {    /* Nichts tun */    exit (0);  }  fclose (File);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -