ldydc 发表于 2009-8-27 15:28

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

建模迷 发表于 2009-8-28 21:48

很复杂,你一定花了不少心思吧!!!

jingxingde 发表于 2010-6-13 17:27

恩 谢谢 学习了   

zzx6155 发表于 2014-8-30 01:20

学不会。。。以后再研究
页: [1]
查看完整版本: gplot的用于画矩阵的结构图