为什么我的马尔可夫聚类算法(MCL)会在Matlab中生成NaN?

为什么我的马尔可夫聚类算法(MCL)会在Matlab中生成NaN?,matlab,markov,Matlab,Markov,我在Matalb中尝试了马尔可夫聚类算法(MCL),但遗憾的是,我得到了一个大小为67*67的矩阵,并且它们的所有元素都是NaN 谁能告诉我怎么了 function adjacency_matrixmod2= mcl(adjacency_matrixmod2) % test the explanations in stijn van dongens thesis. % % @author gregor :: arbylon . net if nargin < 1 % m co

我在Matalb中尝试了马尔可夫聚类算法(MCL),但遗憾的是,我得到了一个大小为67*67的矩阵,并且它们的所有元素都是NaN

谁能告诉我怎么了

 function adjacency_matrixmod2= mcl(adjacency_matrixmod2)
% test the explanations in stijn van dongens thesis.
%
% @author gregor :: arbylon . net

if nargin < 1
    % m contains T(G3 + I) as stochastic matrix
    load -ascii adjacency_matrixmod2.txt
end


p = 2;
minval = 0.001;

e = 1.;
emax = 0.001;
while e > emax

    fprintf('iteration %i before expansion:\n', i);
    adjacency_matrixmod2

    fprintf('iteration %i after expansion/before inflation:\n', i);
    m2 = expand(adjacency_matrixmod2)

    fprintf('inflation:\n')
    [adjacency_matrixmod2, e] = inflate(m2, p, minval);

    fprintf('residual energy: %f\n', e);

end % while e

end % mcl

% expand by multiplying m * m
% this preserves column (or row) normalisation
function m2 = expand(adjacency_matrixmod2)
m2 = adjacency_matrixmod2 *adjacency_matrixmod2;
end

% inflate by Hadamard potentiation
% and column re-normalisation
% prune elements of m that are below minval
function [m2, energy] = inflate(adjacency_matrixmod2, p, minval)
% inflation
m2 = adjacency_matrixmod2 .^ p;
% pruning
m2(find(m2 < minval)) = 0;
% normalisation
dinv = diag(1./sum(m2));
m2 = m2 * dinv;
% calculate residual energy
maxs = max(m2);
sqsums = sum(m2 .^ 2);
energy = max(maxs - sqsums);
end
函数邻接矩阵MOD2=mcl(邻接矩阵MOD2) %测试stijn van dongens论文中的解释。 % %@作者格雷戈:阿比隆。网 如果nargin<1 %m包含T(G3+I)作为随机矩阵 加载-ascii邻接矩阵xmod2.txt 结束 p=2; minval=0.001; e=1。; emax=0.001; 而e>emax fprintf('展开前的迭代%i:\n',i); 邻接矩阵模2 fprintf('扩展后/膨胀前的迭代%i:\n',i); m2=展开(邻接矩阵MOD2) fprintf('通货膨胀:\n') [邻接矩阵mod2,e]=膨胀(m2,p,minval); fprintf('剩余能量:%f\n',e); 结束%e 结束%mcl %乘以m*m展开 %这将保留列(或行)规格化 函数m2=展开(邻接矩阵MOD2) m2=邻接矩阵MOD2*邻接矩阵MOD2; 结束 %阿达玛增强充气 %和列重新规范化 %修剪m中低于minval的元素 函数[m2,能量]=膨胀(邻接矩阵mod2,p,minval) %通货膨胀 m2=邻接矩阵MOD2。^p; %修剪 m2(find(m2
这是我使用的代码,它的输入是一个邻接矩阵。

该图像太小,无法读取节点上的标题。你有密码吗?如果你使用搜索引擎搜索“马尔可夫聚类算法Matlab”,你会得到什么?这些节点是gene的名字太棒了!如果你试过,就把它放到问题中去。如果有问题,请调试它。如果你仍然陷入困境,修改问题,说明你遇到了什么问题。好的,那么你得到了NaN-这是一个人们可以为你调查的具体错误。但是,在看到您的代码之前,他们无法提供帮助。因此,请在您的问题中编辑您的代码(或相关部分)。