资源描述
在matlab中输入以下代码求复杂网络节点的度 度的分布曲线 ,运行出错
2011-03-30 20:27 提问者: titidance8 |浏览次数:1383次
出错提示为:
??? Strings passed to EVAL cannot contain function declarations.
输入代码为:
function [DeD,aver_DeD]=Degree_Distribution(A)
%% 求网络图中各节点的度及度的分布曲线
%% 求解算法:求解每个节点的度,再按发生频率即为概率,求P(k)
%A————————网络图的邻接矩阵
%DeD————————网络图各节点的度分布
%aver_DeD———————网络图的平均度
N=size(A,2);
DeD=zeros(1,N);
for i=1:N
% DeD(i)=length(find((A(i,:)==1)));
DeD(i)=sum(A(i,:));
end
aver_DeD=mean(DeD);
if sum(DeD)==0
disp('该网络图只是由一些孤立点组成');
return;
else
figure;
bar([1:N],DeD);
xlabel('节点编号n');
ylabel('各节点的度数K');
title('网络图中各节点的度的大小分布图');
end
figure;
M=max(DeD);
for i=1:M+1; %网络图中节点的度数最大为M,但要同时考虑到度为0的节点的存在性
N_DeD(i)=length(find(DeD==i-1));
end
P_DeD=zeros(1,M+1);
P_DeD(:)=N_DeD(:)./sum(N_DeD);
bar([0:M],P_DeD,'r');
xlabel('节点的度 K');
ylabel('节点度为K的概率 P(K)');
title('网络图中节点度的概率分布图');
哪位大侠指教下,本人matlab菜鸟级别啊,荣获赐教、感激涕零
问题补充:
错误提示::
??? Input argument 'A' is undefined.
Error in ==> C:\MATLAB6p5\work\Degree_Distribution.m
On line 7 ==> N=size(A,2);
我来帮他解答
满意回答
2011-04-13 15:09
程序没有错!!是你用错了,函数的.m文件不是直接运行,要在workplace中调用或则其他程序调用,例如,你在workplace输入:A=[0 1 1 1;1 0 1 1;1 1 0 1;1 1 1 0];enter后再输入: [DeD,aver_DeD]=Degree_Distribution(A)
enter之后即可
我试过了,程序没问题,运行结果有两张图
赞同3|评论(1)
求助知友
ccfeng2010 | 当前分类:4 级
擅长C/C++:4 级
提问者对回答的评价:
非常感谢
按默认排序|按时间排序
其他回答 共4条
2011-03-31 20:19mcn12rz|当前分类:4 级
et
figure(gcf);
echo on
pause
clc
p=zscore(data);%biaozhunhua
pause
clc
plot3(p(:,1),p(:,2),p(:,3),'*');
axis([0 1 0 1]);
title('Input data');
pause
clc
net=newsom([0 1;0 1],[9]);
pause
clc
net.trainParam.epochs=100;
net=train(net,p);
pause
clc
figure;
w=net.IW;
%IW 是输入层到第一层的权值矩阵
%LW 是中间层和输出层,也就是神经元到神经元的权值
%b 是第Ni层的偏向向量
plotsom(net.IW,net.layers.distances);
pause
clc
a=sim(net,[0.6;0.8])
echo off
追问
运行不起来哎,??? Undefined function or variable 'et'.
Error in ==> C:\MATLAB6p5\work\dufenbu.m
On line 1 ==> et
赞同0|评论
2011-04-01 12:34热心网友
et
figure(gcf);
echo on
pause
clc
p=zscore(data);%biaozhunhua
pause
clc
plot3(p(:,1),p(:,2),p(:,3),'*');
axis([0 1 0 1]);
title('Input data');
pause
clc
net=newsom([0 1;0 1],[9]);
pause
clc
net.trainParam.epochs=100;
net=train(net,p);
pause
clc
figure;
w=net.IW;
%IW 是输入层到第一层的权值矩阵
%LW 是中间层和输出层,也就是神经元到神经元的权值
%b 是第Ni层的偏向向量
plotsom(net.IW,net.layers.distances);
pause
clc
a=sim(net,[0.6;0.8])
echo off
展开阅读全文