亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? pca.txt

?? PCA原代碼,可以處理多為數(shù)據(jù),是控制臺(tái)程序
?? TXT
字號(hào):
[分享]傳一個(gè)win-tc 請(qǐng)教一個(gè)主成分分析源代碼的問題
這個(gè)主成分分析的c源代碼,小弟不知道如何輸入數(shù)據(jù),請(qǐng)高手指教 輸入應(yīng)該在前面幾十行,跪求指教!
#include <stdio.h>
#include <string.h>
#include <math.h>
#define SIGN(a, b) ( (b) < 0 ? -fabs(a) : fabs(a) )

main(argc, argv)
int argc;
char *argv[];

{
FILE *stream;
int n, m, i, j, k, k2;
float **data, **matrix(), **symmat, **symmat2, *vector(), *evals, *interm;
void free_matrix(), free_vector(), corcol(), covcol(), scpcol();
void tred2(), tqli();
float in_value;
char option, *strncpy();

if (argc != 5)
{
printf("Syntax help: PCA filename #rows #cols option\n\n");
printf("(filename -- give full path name,\n");
printf(" #rows \n");
printf(" #cols -- integer values,\n"); 
printf(" option -- R (recommended) for correlation analysis,\n");
printf(" V for variance/covariance analysis\n");
printf(" S for SSCP analysis.)\n");
exit(1);
}
n = atoi(argv[2]); /* # rows */
m = atoi(argv[3]); /* # columns */
strncpy(&option,argv[4],1); /* Analysis option */
printf("No. of rows: %d, no. of columns: %d.\n",n,m);
printf("Input file: %s.\n",argv[1]);
if ((stream = fopen(argv[1],"r")) == NULL)
{
fprintf(stderr, "Program %s : cannot open file %s\n",
argv[0], argv[1]);
fprintf(stderr, "Exiting to system.");
exit(1);
}
data = matrix(n, m); 
for (i = 1; i <= n; i++)
{
for (j = 1; j <= m; j++)
{
fscanf(stream, "%f", &in_value);
data[i][j] = in_value;
}
}

symmat = matrix(m, m); 
switch(option)
{
case 'R':
case 'r':
printf("Analysis of correlations chosen.\n");
corcol(data, n, m, symmat);

/* Output correlation matrix.
for (i = 1; i <= m; i++) {
for (j = 1; j <= 8; j++) {
printf("%7.4f", symmat[i][j]); }
printf("\n"); }
*/
break;
case 'V':
case 'v':
printf("Analysis of variances-covariances chosen.\n");
covcol(data, n, m, symmat);

/* Output variance-covariance matrix.
for (i = 1; i <= m; i++) {
for (j = 1; j <= 8; j++) {
printf("%7.1f", symmat[i][j]); }
printf("\n"); }
*/
break;
case 'S':
case 's':
printf("Analysis of sums-of-squares-cross-products");
printf(" matrix chosen.\n");
scpcol(data, n, m, symmat);

/* Output SSCP matrix.
for (i = 1; i <= m; i++) {
for (j = 1; j <= 8; j++) {
printf("%7.1f", symmat[i][j]); }
printf("\n"); }
*/
break;
default:
printf("Option: %s\n",option);
printf("For option, please type R, V, or S\n");
printf("(upper or lower case).\n");
printf("Exiting to system.\n");
exit(1);
break;
}

evals = vector(m); 
interm = vector(m); 
symmat2 = matrix(m, m); 
for (i = 1; i <= m; i++) {
for (j = 1; j <= m; j++) {
symmat2[i][j] = symmat[i][j]; }
}
tred2(symmat, m, evals, interm); 
tqli(evals, interm, m, symmat); 
printf("\nEigenvalues:\n");
for (j = m; j >= 1; j--) {
printf("%18.5f\n", evals[j]); }
printf("\n(Eigenvalues should be strictly positive; limited\n");
printf("precision machine arithmetic may affect this.\n");
printf("Eigenvalues are often expressed as cumulative\n");
printf("percentages, representing the 'percentage variance\n");
printf("explained' by the associated axis or principal component.)\n");

printf("\nEigenvectors:\n");
printf("(First three; their definition in terms of original vbes.)\n");
for (j = 1; j <= m; j++) {
for (i = 1; i <= 3; i++) {
printf("%12.4f", symmat[j][m-i+1]); }
printf("\n"); }
for (i = 1; i <= n; i++) {
for (j = 1; j <= m; j++) {
interm[j] = data[i][j]; } 
for (k = 1; k <= 3; k++) {
data[i][k] = 0.0;
for (k2 = 1; k2 <= m; k2++) {
data[i][k] += interm[k2] * symmat[k2][m-k+1]; }
}
}

printf("\nProjections of row-points on first 3 prin. comps.:\n");
for (i = 1; i <= n; i++) {
for (j = 1; j <= 3; j++) {
printf("%12.4f", data[i][j]); }
printf("\n"); }

/* Form projections of col.-points on first three prin. components. */
/* Store in 'symmat2', overwriting what was stored in this. */
for (j = 1; j <= m; j++) {
for (k = 1; k <= m; k++) {
interm[k] = symmat2[j][k]; } 
for (i = 1; i <= 3; i++) {
symmat2[j][i] = 0.0;
for (k2 = 1; k2 <= m; k2++) {
symmat2[j][i] += interm[k2] * symmat[k2][m-i+1]; }
if (evals[m-i+1] > 0.0005) 
symmat2[j][i] /= sqrt(evals[m-i+1]); 
else
symmat2[j][i] = 0.0; }
}

printf("\nProjections of column-points on first 3 prin. comps.:\n");
for (j = 1; j <= m; j++) {
for (k = 1; k <= 3; k++) {
printf("%12.4f", symmat2[j][k]); }
printf("\n"); }

free_matrix(data, n, m);
free_matrix(symmat, m, m);
free_matrix(symmat2, m, m);
free_vector(evals, m);
free_vector(interm, m);

}

void corcol(data, n, m, symmat)
float **data, **symmat;
int n, m;
{
float eps = 0.005;
float x, *mean, *stddev, *vector();
int i, j, j1, j2;

mean = vector(m);
stddev = vector(m);

for (j = 1; j <= m; j++)
{
mean[j] = 0.0;
for (i = 1; i <= n; i++)
{
mean[j] += data[i][j];
}
mean[j] /= (float)n;
}

printf("\nMeans of column vectors:\n");
for (j = 1; j <= m; j++) {
printf("%7.1f",mean[j]); } printf("\n");

for (j = 1; j <= m; j++)
{
stddev[j] = 0.0;
for (i = 1; i <= n; i++)
{
stddev[j] += ( ( data[i][j] - mean[j] ) *
( data[i][j] - mean[j] ) );
}
stddev[j] /= (float)n;
stddev[j] = sqrt(stddev[j]);
if (stddev[j] <= eps) stddev[j] = 1.0;
}
printf("\nStandard deviations of columns:\n");
for (j = 1; j <= m; j++) { printf("%7.1f", stddev[j]); }
printf("\n");

for (i = 1; i <= n; i++)
{
for (j = 1; j <= m; j++)
{
data[i][j] -= mean[j];
x = sqrt((float)n);
x *= stddev[j];
data[i][j] /= x;
}
}

/* Calculate the m * m correlation matrix. */
for (j1 = 1; j1 <= m-1; j1++)
{
symmat[j1][j1] = 1.0;
for (j2 = j1+1; j2 <= m; j2++)
{
symmat[j1][j2] = 0.0;
for (i = 1; i <= n; i++)
{
symmat[j1][j2] += ( data[i][j1] * data[i][j2]);
}
symmat[j2][j1] = symmat[j1][j2];
}
}
symmat[m][m] = 1.0;

return;

}

void covcol(data, n, m, symmat)
float **data, **symmat;
int n, m;
/* Create m * m covariance matrix from given n * m data matrix. */
{
float *mean, *vector();
int i, j, j1, j2;

/* Allocate storage for mean vector */

mean = vector(m);

/* Determine mean of column vectors of input data matrix */

for (j = 1; j <= m; j++)
{
mean[j] = 0.0;
for (i = 1; i <= n; i++)
{
mean[j] += data[i][j];
}
mean[j] /= (float)n;
}

printf("\nMeans of column vectors:\n");
for (j = 1; j <= m; j++) {
printf("%7.1f",mean[j]); } printf("\n");

/* Center the column vectors. */

for (i = 1; i <= n; i++)
{
for (j = 1; j <= m; j++)
{
data[i][j] -= mean[j];
}
}

/* Calculate the m * m covariance matrix. */
for (j1 = 1; j1 <= m; j1++)
{
for (j2 = j1; j2 <= m; j2++)
{
symmat[j1][j2] = 0.0;
for (i = 1; i <= n; i++)
{
symmat[j1][j2] += data[i][j1] * data[i][j2];
}
symmat[j2][j1] = symmat[j1][j2];
}
}

return;

}

/** Sums-of-squares-and-cross-products matrix: creation **************/

void scpcol(data, n, m, symmat)
float **data, **symmat;
int n, m;
/* Create m * m sums-of-cross-products matrix from n * m data matrix. */
{
int i, j1, j2;

/* Calculate the m * m sums-of-squares-and-cross-products matrix. */

for (j1 = 1; j1 <= m; j1++)
{
for (j2 = j1; j2 <= m; j2++)
{
symmat[j1][j2] = 0.0;
for (i = 1; i <= n; i++)
{
symmat[j1][j2] += data[i][j1] * data[i][j2];
}
symmat[j2][j1] = symmat[j1][j2];
}
}

return;

}

/** Error handler **************************************************/

void erhand(err_msg)
char err_msg[];
/* Error handler */
{
fprintf(stderr,"Run-time error:\n");
fprintf(stderr,"%s\n", err_msg);
fprintf(stderr,"Exiting to system.\n");
exit(1);
}

/** Allocation of vector storage ***********************************/

float *vector(n)
int n;
/* Allocates a float vector with range [1..n]. */
{

float *v;

v = (float *) malloc ((unsigned) n*sizeof(float));
if (!v) erhand("Allocation failure in vector().");
return v-1;

}

float **matrix(n,m)
int n, m;
/* Allocate a float matrix with range [1..n][1..m]. */
{
int i;
float **mat;

/* Allocate pointers to rows. */
mat = (float **) malloc((unsigned) (n)*sizeof(float*));
if (!mat) erhand("Allocation failure 1 in matrix().");
mat -= 1;

for (i = 1; i <= n; i++)
{
mat[i] = (float *) malloc((unsigned) (m)*sizeof(float));
if (!mat[i]) erhand("Allocation failure 2 in matrix().");
mat[i] -= 1;
}

/* Return pointer to array of pointers to rows. */
return mat;

}

void free_vector(v,n)
float *v;
int n;
/* Free a float vector allocated by vector(). */
{
free((char*) (v+1));
}

void free_matrix(mat,n,m)
float **mat;
int n, m;
/* Free a float matrix allocated by matrix(). */
{
int i;

for (i = n; i >= 1; i--)
{
free ((char*) (mat[i]+1));
}
free ((char*) (mat+1));
}

void tred2(a, n, d, e)
float **a, *d, *e;
/* float **a, d[], e[]; */
int n;
{
int l, k, j, i;
float scale, hh, h, g, f;

for (i = n; i >= 2; i--)
{
l = i - 1;
h = scale = 0.0;
if (l > 1)
{
for (k = 1; k <= l; k++)
scale += fabs(a[i][k]);
if (scale == 0.0)
e[i] = a[i][l];
else
{
for (k = 1; k <= l; k++)
{
a[i][k] /= scale;
h += a[i][k] * a[i][k];
}
f = a[i][l];
g = f>0 ? -sqrt(h) : sqrt(h);
e[i] = scale * g;
h -= f * g;
a[i][l] = f - g;
f = 0.0;
for (j = 1; j <= l; j++)
{
a[j][i] = a[i][j]/h;
g = 0.0;
for (k = 1; k <= j; k++)
g += a[j][k] * a[i][k];
for (k = j+1; k <= l; k++)
g += a[k][j] * a[i][k];
e[j] = g / h;
f += e[j] * a[i][j];
}
hh = f / (h + h);
for (j = 1; j <= l; j++)
{
f = a[i][j];
e[j] = g = e[j] - hh * f;
for (k = 1; k <= j; k++)
a[j][k] -= (f * e[k] + g * a[i][k]);
}
}
}
else
e[i] = a[i][l];
d[i] = h;
}
d[1] = 0.0;
e[1] = 0.0;
for (i = 1; i <= n; i++)
{
l = i - 1;
if (d[i])
{
for (j = 1; j <= l; j++)
{
g = 0.0;
for (k = 1; k <= l; k++)
g += a[i][k] * a[k][j];
for (k = 1; k <= l; k++)
a[k][j] -= g * a[k][i];
}
}
d[i] = a[i][i];
a[i][i] = 1.0;
for (j = 1; j <= l; j++)
a[j][i] = a[i][j] = 0.0;
}
}

void tqli(d, e, n, z)
float d[], e[], **z;
int n;
{
int m, l, iter, i, k;
float s, r, p, g, f, dd, c, b;
void erhand();

for (i = 2; i <= n; i++)
e[i-1] = e[i];
e[n] = 0.0;
for (l = 1; l <= n; l++)
{
iter = 0;
do
{
for (m = l; m <= n-1; m++)
{
dd = fabs(d[m]) + fabs(d[m+1]);
if (fabs(e[m]) + dd == dd) break;
}
if (m != l)
{
if (iter++ == 30) erhand("No convergence in TLQI.");
g = (d[l+1] - d[l]) / (2.0 * e[l]);
r = sqrt((g * g) + 1.0);
g = d[m] - d[l] + e[l] / (g + SIGN(r, g));
s = c = 1.0;
p = 0.0;
for (i = m-1; i >= l; i--)
{
f = s * e[i];
b = c * e[i];
if (fabs(f) >= fabs(g))
{
c = g / f;
r = sqrt((c * c) + 1.0);
e[i+1] = f * r;
c *= (s = 1.0/r);
}
else
{
s = f / g;
r = sqrt((s * s) + 1.0);
e[i+1] = g * r;
s *= (c = 1.0/r);
}
g = d[i+1] - p;
r = (d[i] - g) * s + 2.0 * c * b;
p = s * r;
d[i+1] = g + p;
g = c * r - b;
for (k = 1; k <= n; k++)
{
f = z[k][i+1];
z[k][i+1] = s * z[k][i] + c * f;
z[k][i] = c * z[k][i] - s * f;
}
}
d[l] = d[l] - p;
e[l] = g;
e[m] = 0.0;
}
} while (m != l);
}
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国内二区三区| 国产成人在线网站| 在线一区二区三区四区五区| 国产精品久久久久久久久晋中| 国产风韵犹存在线视精品| 久久精品一区二区三区不卡| 精品一区二区三区免费观看| 精品粉嫩aⅴ一区二区三区四区| 另类小说图片综合网| 精品国产一二三| 国产乱人伦偷精品视频免下载| 久久婷婷久久一区二区三区| 国产91精品一区二区麻豆亚洲| 日本一区二区不卡视频| 99精品视频一区二区| 日韩精品一卡二卡三卡四卡无卡| 5858s免费视频成人| 免费不卡在线视频| 久久蜜桃香蕉精品一区二区三区| 国产精品中文欧美| 最新中文字幕一区二区三区| 欧美亚日韩国产aⅴ精品中极品| 午夜亚洲福利老司机| 欧美mv日韩mv国产| 不卡的电影网站| 午夜精品久久久久久久久| 欧美成人精品福利| 99精品久久久久久| 亚洲.国产.中文慕字在线| 日韩欧美电影在线| av成人老司机| 美女视频黄 久久| 国产精品伦一区| 在线不卡中文字幕播放| 国产高清不卡二三区| 亚洲制服丝袜av| 精品免费一区二区三区| 91网站视频在线观看| 六月丁香婷婷色狠狠久久| 亚洲色图.com| 久久久久97国产精华液好用吗| 91丨国产丨九色丨pron| 麻豆久久一区二区| 中文字幕日韩欧美一区二区三区| 欧美一级一区二区| 色天天综合久久久久综合片| 国产乱人伦偷精品视频不卡| 性做久久久久久免费观看| 欧美极品xxx| 91精品国产品国语在线不卡| 9i在线看片成人免费| 免费视频一区二区| 亚洲一区二区三区四区的| 久久先锋资源网| 在线不卡一区二区| 成+人+亚洲+综合天堂| 伊人婷婷欧美激情| 中文字幕第一区| 精品福利视频一区二区三区| 色狠狠综合天天综合综合| 国产成人免费视频一区| 五月天激情综合| 亚洲精品久久久久久国产精华液| 日韩欧美亚洲一区二区| 欧美性一区二区| 成人深夜福利app| 国产麻豆一精品一av一免费| 午夜精品成人在线视频| 亚洲另类春色校园小说| 日韩电影网1区2区| 亚洲精品国久久99热| 国产女主播在线一区二区| 9191精品国产综合久久久久久| 不卡av在线网| 精品一区二区三区欧美| 久久精品国产亚洲高清剧情介绍| 亚洲欧美另类图片小说| 久久精品人人做人人综合| 911精品国产一区二区在线| 不卡视频在线看| 日本午夜精品视频在线观看| 亚洲男人的天堂在线观看| www国产成人| 欧美一区二区免费| 欧美日韩另类国产亚洲欧美一级| a美女胸又www黄视频久久| 久久国产免费看| 日韩国产成人精品| 亚洲日本一区二区三区| 日韩一区中文字幕| 亚洲综合一区二区三区| 中文字幕视频一区| 《视频一区视频二区| 中文字幕精品一区二区精品绿巨人| 国产精品午夜电影| 国产日韩欧美不卡| 久久天天做天天爱综合色| 欧美日韩精品专区| 在线播放中文一区| 欧美男生操女生| 欧美日韩在线播放一区| 91麻豆精品国产| 91精品国产综合久久久蜜臀粉嫩 | 欧美一级生活片| 欧美天堂一区二区三区| 欧美中文字幕不卡| 在线视频一区二区三区| 欧美主播一区二区三区美女| 日本精品一区二区三区高清| 欧美体内she精高潮| 欧美色精品在线视频| 欧美日韩高清一区| 日韩一区二区三区av| 欧美区一区二区三区| 久久久久高清精品| 中日韩免费视频中文字幕| 亚洲三级在线免费观看| 亚洲一区二区三区视频在线播放| 麻豆成人免费电影| 国产福利一区在线观看| 99精品视频中文字幕| 欧美日韩国产123区| 精品国产乱码久久久久久影片| 久久久99久久| 亚洲欧美激情在线| 日韩电影免费一区| 国产精品一品二品| 一本久久a久久精品亚洲| 欧美日韩一区二区三区不卡| 久久久久国产精品人| 一级精品视频在线观看宜春院| 亚洲狼人国产精品| 日本午夜精品视频在线观看| 国产精品一区二区久激情瑜伽| av亚洲精华国产精华精华 | 国产精品二区一区二区aⅴ污介绍| 国产精品久久影院| 亚洲第一电影网| 国产传媒欧美日韩成人| 在线免费观看一区| 精品国产一二三区| 亚洲人成网站在线| 波多野结衣在线一区| 欧美卡1卡2卡| 亚洲最新视频在线播放| 国产乱国产乱300精品| 在线中文字幕不卡| 国产亚洲精品资源在线26u| 夜色激情一区二区| 丁香网亚洲国际| 精品久久一二三区| 亚洲午夜日本在线观看| 国产麻豆视频一区二区| 精品视频在线免费| 亚洲国产精品二十页| 日本不卡视频在线| 欧美日韩免费电影| 中文字幕色av一区二区三区| 免费高清不卡av| 日本久久一区二区三区| 久久九九全国免费| 亚洲精品久久久蜜桃| 色婷婷久久久综合中文字幕| 久久综合色婷婷| 亚洲一区二区三区不卡国产欧美| 国产精品一二三区在线| 欧美一级在线视频| 香蕉久久一区二区不卡无毒影院| 99免费精品视频| 久久久久国产精品麻豆| 免费在线观看不卡| 欧美日韩国产天堂| 午夜久久久久久| 91国产丝袜在线播放| 日韩美女视频一区二区 | 91论坛在线播放| 久久久91精品国产一区二区精品 | 日韩黄色在线观看| 欧美性色黄大片手机版| 17c精品麻豆一区二区免费| 国产成人亚洲综合a∨婷婷| 欧美va亚洲va在线观看蝴蝶网| 亚洲欧洲日韩一区二区三区| 成人av网址在线| 久久久99久久| 国产suv精品一区二区三区| 亚洲精品在线电影| 韩国女主播一区| 国产性做久久久久久| 国产激情精品久久久第一区二区| 欧美r级电影在线观看| 麻豆91免费观看| 日韩欧美国产一区二区三区| 日韩精彩视频在线观看| 久久婷婷综合激情| 粉嫩久久99精品久久久久久夜 | 六月丁香婷婷色狠狠久久| 欧美一级理论片| 麻豆久久久久久| 国产日韩欧美综合一区|