資源簡介
用c++寫的馬爾科夫聚類算法(MCL),輸入圖的矩陣信息,可以得到圖的聚類。

代碼片段和文件信息
//#include?
//#include?
/*#include?
#include?
#include?
typedef?float?datatype;
int?node=0;
#define?MAXNODE??100
datatype?**matrix(const?int?mconst?int?n)
/*創建一個m*n的datatype類型矩陣,返回首地址,如果創建失敗則返回NULL*/
/*{?
int?ij;
????datatype?**a?=?(datatype**)malloc(sizeof(datatype?*)*m);
if?(!a)?{?
return?NULL;
}?else?
for?(i?=?0;?i {???
a[i]?=?(datatype*)malloc(sizeof(datatype)*n);?
if?(!a[i])?{???
return?NULL;??
}else{
for(j?=?0;j a[i][j]?=?0;}
}?
return?a;
}
void?dela(datatype?**aconst?int?m)
/*刪除用matrix()函數創建矩陣*/
/*{?
int?i;?
for?(i?=?0;?i free(a[i]);
free(a);
}
//四舍五入,庫函數未調用成功
float?myround(float?data)
{
??float?outdata;
??if?(data?>?0)
????outdata=(int)((data*100)+0.5)/100.00;
??else?
????outdata=(int)((data*100)-0.5)/100.00;
??return?outdata;
}
datatype?**normalize(datatype?**non_NormMatrix)
?{
????????//計算每一列的和
????????float?sums[MAXNODE];
int?colrow;
float?sum;
????????for(col=0;col sum?=?0;
????????????for(row=0;row ????????????????sum?+=?non_NormMatrix[row][col];
????????????sums[col]?=?sum;
????????}
????????//?每一個值除以所在列的和
????????for(col=0;col ????????????for(row=0;row //
????????????????non_NormMatrix[row][col]?=?myround(?(non_NormMatrix[row][col]?/?sums[col]));
???return??non_NormMatrix;
?}
?datatype?**expand(datatype?**e_Matrix)
?{
?int?rowcolc;
?float?result;
?for(row=0;row ?{
?for(col=0;col ?{
????????????????result?=?0;
????????????????for(c=0;c ????????????????????result?+=?e_Matrix[row][c]?*?e_Matrix[c][col];
???????????????e_Matrix[row][col]?=?result;
?}
????????}
???????return??e_Matrix;?
?????
?}
?datatype?**inflate(datatype?**e_Matrix?int?power)
?{
?int?rowcol;
????????for(row=0;row for(col=0;col ????????????????e_Matrix[row][col]?=?pow(e_Matrix[row][col]?power);
//if(e_Matrix[row][col] // e_Matrix[row][col]?=?0;
}??
return?e_Matrix?;
?}
?bool?equal(datatype?**mdatatype?**M)
?{
?int?ij;
??????for(i=0;i ????????????for(j=0;j ????????????????if(?abs(m[i][j]?-?M[i][j])?>?0.01)?
return?false;
??????return?true;
?
?}
int?main(void)
{?
int?ijrowcol;
int?p?=?2;?//擴張系數
int?num?=?0;
float?info;
bool?flag=false?;
datatype?**M;
datatype?**m;
printf(“請輸入圖的結點個數:“);
scanf(“%d“&node);
M=matrix(nodenode);
m=matrix(nodenode);
if?(!M)?{?
/*如果創建失敗,則輸出錯誤信息并結束程序*/?
/* printf(“存儲錯誤\n“);
return?-1;
}?else?
{???
printf(“請輸入圖的矩陣信息:(按行輸入)“);
for?(i=?0?;?i {???
/*使用剛才創建的二維數組*/???
/* for?(j=0;?j scanf(“%f“&M[i][j]);
//M[i][j]=info;???
}?
}?
printf(“輸入完成。\n“);
}?
???
//float?minval?=?0.001;
???//optional
for(i=0;i M[i][i]?=?1
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????31744??2013-12-08?12:19??MyMcl\Debug\MyMcl.exe
?????文件?????323696??2013-12-08?12:19??MyMcl\Debug\MyMcl.ilk
?????文件?????379904??2013-12-08?12:19??MyMcl\Debug\MyMcl.pdb
?????文件????2162688??2013-12-08?12:18??MyMcl\ipch\mymcl-8c70186b\mymcl-ff43cb4e.ipch
?????文件???????1290??2013-12-08?12:19??MyMcl\MyMcl\Debug\cl.command.1.tlog
?????文件???????3920??2013-12-08?12:19??MyMcl\MyMcl\Debug\CL.read.1.tlog
?????文件????????848??2013-12-08?12:19??MyMcl\MyMcl\Debug\CL.write.1.tlog
?????文件???????2644??2013-12-08?12:19??MyMcl\MyMcl\Debug\li
?????文件???????5510??2013-12-08?12:19??MyMcl\MyMcl\Debug\li
?????文件???????1456??2013-12-08?12:19??MyMcl\MyMcl\Debug\li
?????文件????????986??2013-12-08?12:19??MyMcl\MyMcl\Debug\mt.command.1.tlog
?????文件???????1574??2013-12-08?12:19??MyMcl\MyMcl\Debug\mt.read.1.tlog
?????文件????????642??2013-12-08?12:19??MyMcl\MyMcl\Debug\mt.write.1.tlog
?????文件??????20606??2013-12-08?12:19??MyMcl\MyMcl\Debug\mymain.obj
?????文件???????1236??2012-11-24?19:57??MyMcl\MyMcl\Debug\MyMcl.Build.CppClean.log
?????文件????????381??2013-12-08?12:19??MyMcl\MyMcl\Debug\MyMcl.exe.intermediate.manifest
?????文件?????????94??2013-12-08?14:28??MyMcl\MyMcl\Debug\MyMcl.lastbuildstate
?????文件????????905??2013-12-08?14:28??MyMcl\MyMcl\Debug\MyMcl.log
?????文件??????68608??2013-12-08?12:19??MyMcl\MyMcl\Debug\vc100.idb
?????文件??????69632??2013-12-08?12:19??MyMcl\MyMcl\Debug\vc100.pdb
?????文件???????9002??2013-12-08?12:19??MyMcl\MyMcl\mymain.cpp
?????文件???????3221??2012-11-24?11:01??MyMcl\MyMcl\MyMcl.vcxproj
?????文件????????944??2012-11-24?11:01??MyMcl\MyMcl\MyMcl.vcxproj.filters
?????文件????????143??2012-11-24?10:58??MyMcl\MyMcl\MyMcl.vcxproj.user
????..A..H.????????32??2013-12-08?10:56??MyMcl\MyMcl.opensdf
?????文件????1921024??2013-12-08?12:20??MyMcl\MyMcl.sdf
?????文件????????882??2012-11-24?10:58??MyMcl\MyMcl.sln
????..A..H.?????10240??2012-12-07?17:03??MyMcl\MyMcl.suo
?????目錄??????????0??2013-12-08?12:18??MyMcl\ipch\mymcl-8c70186b
?????目錄??????????0??2013-12-08?14:28??MyMcl\MyMcl\Debug
............此處省略7個文件信息
- 上一篇:斗地主課程設計 c語言版
- 下一篇:ADS1115的51單片機驅動
評論
共有 條評論