• 大小: 752KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-27
  • 语言: C/C++
  • 标签: MCL  c++  

资源简介

用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\link.command.1.tlog

     文件       5510  2013-12-08 12:19  MyMcl\MyMcl\Debug\link.read.1.tlog

     文件       1456  2013-12-08 12:19  MyMcl\MyMcl\Debug\link.write.1.tlog

     文件        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个文件信息

评论

共有 条评论