gplot的用于画矩阵的结构图
gplot的用于画矩阵的结构图gplot的用法:
gplot(A,xy),A说的是相应点的邻接矩阵,而后面的xy是以相应点的坐标为元素的列向量。举个例子,A=;xy=。x(2) y(2)可以可以看成一个二维点的坐标,于是xy可以看成由两个三维列向量的对应点组成的三个点的坐标,前面的矩阵A可以看成对应三个点的联系。如果对应位置有关系则相应位置的元素不为零,否则为零。也就是说前面的邻接矩阵是逻辑的邻接矩阵,有关系对应一个非零数(任意非零数),没关系对应零。
例如:A=
xy=[-0.5 1;0.5 1;1.5 0;0.5 -1;-0.5,-1;-1.5,0]
a=-max(abs(xy(:,1)))*1.1;b=max(abs(xy(:,1)))*1.1;
c=-max(abs(xy(:,2)))*1.1;d=max(abs(xy(:,2)))*1.1;
gplot(A,xy),axis()
如果要给邻接矩阵的图画为有向图,则可使用如下程序:
function y=graphy_plot(A,xy,l,p)
% Axyll=0
%l~=0,p
a=-max(abs(xy(:,1)))*1.1;b=max(abs(xy(:,1)))*1.1;
c=-max(abs(xy(:,2)))*1.1;d=max(abs(xy(:,2)))*1.1;
if l==0
gplot(A,xy),axis(),hold on,
elseif l~=0
U=[];V=[];X=[];Y=[];
n=length(A(:,1)) ;
for i=1:n
k=find(A(i,:)~=0);
m=length(k);
if(m~=0)
for j=1:m
u(1)=(xy(k(j),1)-xy(i,1)); v(1)=(xy(k(j),2)-xy(i,2));
u(2)=eps; v(2)=eps; U=;V=;
X=[;X]; Y=[;Y];
end
text(xy(i,1),xy(i,2),['\bullet\leftarrow\fontsize{16}\it{V}',...
num2str(i)]);hold on,
end
end
gplot(A,xy),axis(),hold on,
h=quiver(X,Y,U,V,p);set(h,'color','red');hold on,
plot(xy(:,1),xy(:,2),'k.','markersize',12),hold on,
end , hold off 很复杂,你一定花了不少心思吧!!! 恩 谢谢 学习了 学不会。。。以后再研究
页:
[1]