资源简介
用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单片机驱动
相关资源
- 学生学习成绩管理程序(C++版)
- 学生成绩管理系统 C、VC++
- 利用ICMP数据包探测网络中的活动主机
- 基础PageRank 算法 C++实现
- 哈希检索算法的C++实现源代码
- 精确计算24节气的c++类
- 角度的单位转换,从度到度分秒,C
- VS2010版c++PID控制算法详尽注释
- c++课程设计物流管理系统
- C++跟DCMTK显示DICOM医学图像
- PE文件解析类轻松制作自己的PE文件解
- 使用败者树实现外排序vc++
- C++版任意角度透视变换
- 达内科技 c++ 课件与笔记
- SDNU 面向对象程序设计及C++ MFC 期中作
- C++ Primer Plus第6版_中文版_带书签_超清
- C++标准库第2版_带书签_高清完整版
- 串口通信C++源代码
- LIBCID.LIB
- C++大作业_学生管理系统(含源代码实
- 局部线性回归c++实现
- 朴素贝叶斯算法 c++
- C++全套21天视频教程
- 大恒相机动态库文件和头文件
- c++/MFC CSocket仿QQ聊天软件,实现1对1聊
- C++ QT SMTP 发送邮件(最新,成功的)
- 类C语言的脚本解析执行(使用C++语言
- 五子棋小游戏含注释
- c++服务器 拆包粘包 过程
- C++PCM音频格式录音双缓存MFC版本
评论
共有 条评论