matlab画无向图,基于坐标的无向图联系作者

%函数名netplot
%使用方法输入请help netplot
%无返回值
%函数只能处理无向图
%作者:tiandsp
%最后修改:2012.12.26
function netplot(A,flag)
    %调用方法输入netplot(A,flag),无返回值
    %A为邻接矩阵或关联矩阵
    %flag=1时处理邻接矩阵
    %flag=2时处理关联矩阵
    %函数只能处理无向图
    if flag==1      %邻接矩阵表示无向图
        ND_netplot(A);
        return;
    end

    if flag==2      %关联矩阵表示无向图
        [m n]=size(A);      %关联矩阵变邻接矩阵
        W=zeros(m,m);
        for i=1:n
            a=find(A(:,i)~=0);
            W(a(1),a(2))=1;
            W(a(2),a(1))=1;
        end
        ND_netplot(W);
        return;
    end

    function ND_netplot(A)
        [n n]=size(A);
        w=floor(sqrt(n));
        h=floor(n/w);
        x=[];
        y=[];
        for i=1:h           %使产生的随机点有其范围,使显示分布的更广
            for j=1:w
                x=[x 10*rand(1)+(j-1)*10];
                y=[y 10*rand(1)+(i-1)*10];
            end
        end
        ed=n-h*w;
        for i=1:ed
           x=[x 10*rand(1)+(i-1)*10];
           y=[y 10*rand(1)+h*10];
        end
        plot(x,y,‘r*‘);    

        title(‘网络拓扑图‘);
        for i=1:n
            for j=i:n
                if A(i,j)~=0
                    c=num2str(A(i,j));                      %将A中的权值转化为字符型
                    text((x(i)+x(j))/2,(y(i)+y(j))/2,c,‘Fontsize‘,10);  %显示边的权值
                    line([x(i) x(j)],[y(i) y(j)]);      %连线
                end
                text(x(i),y(i),num2str(i),‘Fontsize‘,14,‘color‘,‘r‘);   %显示点的序号
                hold on;
            end
        end
    end

end

原文地址:https://www.cnblogs.com/smuxiaolei/p/8976475.html

时间: 2024-11-09 04:39:35

matlab画无向图,基于坐标的无向图联系作者的相关文章

matlab画柱状图

论文中需要画图进行比较,感觉还是matlab画起来比较方便,先把自己画的图及matlab代码放上. y=[300 311;390 425; 312 321; 250 185; 550 535; 420 432; 410 520;];b=bar(y);grid on;ch = get(b,'children');set(gca,'XTickLabel',{'0','1','2','3','4','5','6'})set(ch,'FaceVertexCData',[1 0 1;0 0 0;])leg

matlab画图形函数 semilogx

matlab画图形函数 semilogx loglog 主要是学习semilogx函数,其中常用的是semilogy函数,即后标为x的是在x轴取对数,为y的是y轴坐标取对数.loglog是x y轴都取对数. 例子, clc;clear;close all;x = 0:.1:10;y = 2*x+3;subplot(211);plot(x,y);grid onsubplot(212);semilogy(x,y);grid on 结果 —————————复习各种matlab图形函数—————————

matlab画圆

首先介绍一下rectangle函数 1.rectangle函数实际上是一个画矩形的行数,语法调用为: rectangle('Position',[x,y,w,h]),表示的是下哦那个点(x,y)开始画一个宽w高h的矩形.默认情况下是从(0,0)开始画一个宽1高1的矩形.例如直接在命令窗口出入:rectangle,axis equal  画出的图形如下图所示.(axis equal的意思是保持横纵坐标等比例) 2. rectangle函数可以制定矩形边的曲率,这就为我们画圆提供了一个思路.改变曲率

Matlab与.NET基于类型安全的接口混合编程入门

原文:[原创]Matlab与.NET基于类型安全的接口混合编程入门 如果这些文章对你有用,有帮助,期待更多开源组件介绍,请不要吝啬手中的鼠标. [原创分享]Matlab.NET混编调用Figure窗体 http://www.cnblogs.com/asxinyu/archive/2013/04/14/3020813.html [原创]开源.NET下的XML数据库介绍及入门  http://www.cnblogs.com/asxinyu/archive/2013/03/25/2980086.htm

matlab画二维直方图以及双y轴坐标如何修改另一边y轴的颜色

1.首先讲一下如何用hist画二维直方图 1 x=[-568179 -766698 -935586 -826865 -393971 -771826 -1529945 -1910695 -1694740 -926367 -306998 -844840 -1828334 -2062815 -2297296 -1498824 -411346 -827922 -1826636 -1844777 -1862918 -1881060 -746534 -100479 -845832 -1832756 -194

matlab画直线,指定斜率与x坐标范围

闲话不说,直接上代码与图的效果! AngleD=59; %[-90 90]c=20:80;centralPoint=[50 50]';image=zeros(100,100);image(25:74,25:74)=ceil(abs(rand(50,50).*10)); if abs(AngleD)==90,    fprintf(1,'no single line for the x area\n');elseif AngleD==0,    r=centralPoint(1).*ones(si

MATLAB画图自动确定坐标范围(GUI)

今天在用MATLAB做我的毕设的时候碰到一个很纠结的问题,之所以说纠结是因为我觉得这个问题很简单,可是一时半会就是弄不出来(ー`′ー).鼓捣了半个小时左右吧,终于搞出来了.下面做个纪念: 问题描述 在做一个GUI的时候,需要在一个坐标系内画图,想要在图上添加一条直线,直线长度由坐标轴长度自动确定,dont know what to do. 问题解决 前面那些n次失败的尝试我就不说了,太急人了,总之一句话:就是被种种逻辑关系搞晕了-- 正文开始,下面是代码片段, xl = get(handles.

关于MATLAB处理大数据坐标文件

原先有3000条测试数据,MATLAB表现出来强大的数据处理能力,十几秒就可以把数据分类.分装并储存,这次共有10万条坐标数据,MATLAB明显后劲不足,显示内存不足 自我认识:以前MATLAB数据处理是手动将数据导入mat表格,再由程序运行表格数据,但是这次运行光坐标压缩文件就有35兆,就算导入成功也是相当恐怖的一个表格文件 解决方案:1.拒绝手动导入,程序导入 2.不使用表格,表格的内存占用明显比文本文档大太多(当然,这种方案比较极端,但是必须执行,否则后期明显性能上就差别人一大截)

matlab画动画

一般来说,matlab制作动画有四种方式. 第一 .以质点运动轨迹的方式显示 使用comet.comet3函数,前者是二维,后者是三维 comet(y)显示质点绕向量y,comet(x,y)显示质点绕向量y与x,comet(x,y,p),其中为轨迹尾巴的长度 以comet(x,y)为例, 显示平抛运动 vx = 40; t = 0:0.001:10; x = vx*t; y = -9.8*t.^2/2; comet(x,y) 显示导弹发射 vx = 100*cos(1/4*pi); vy = 1