matlab能将矩阵转化成图像吗,【Matlab】将图的矩阵转化成无向图

clear all;clc;

[A,Name,allData]=xlsread(Nametable,'knowing someones dialect'); %read excel

r_size=size(Name);

if r_size(1)~=r_size(2) %判断是否为方阵

disp('NOT A SQUARE MATRIX');

return;

end

len=r_size(1);

r=1.35

w=floor(sqrt(len)); %使点的分布尽可能的随机避免重合点

h=floor(len/w);

for i=1:h

for j=1:w

pointx=98*rand(len,1)+(j-1)*19;

pointy=97*rand(len,1)+(i-1)*13;

end

end

pointx=floor(pointx);

pointy=floor(pointy);

theta=0:pi/25:2*pi;

[tempx,tempy]=pol2cart(theta',r);

point=[pointx,pointy]; %50*2

hold on; %保存axes内图像用的,如果你在新画图像之后不想覆盖原图像就要加上hold on这句话

for i=1:len

temp=[tempx,tempy]+[point(i,1)*ones(length(tempx),1),point(i,2)*ones(length(tempx),1)];

plot(temp(:,1),temp(:,2),'b');

fill(temp(:,1),temp(:,2),'y');

text(point(i,1)-0.5,point(i,2),num2str(i),'FontName','黑体','FontWeight','Bold');

title('knowing someones dialect','Color','c');

end

for i=1:len

for j=i:len

if Name{i,j}=='y'

Linkpoints(point(i,:),point(j,:),r);

end

end

end

function Linkpoints(point1,point2,r)

%从节点的边发出连接两点

temp=point2-point1;

if (~temp(1))&&(~temp(2))

return;

end

theta=cart2pol(temp(1),temp(2));

[point1_x,point1_y]=pol2cart(theta,r);

point_1=[point1_x,point1_y]+point1;

[point2_x,point2_y]=pol2cart(theta+(2*(theta

point_2=[point2_x,point2_y]+point2;

plot([point_1(1),point_2(1)],[point_1(2),point_2(2)],'g');%线条颜色在这里修改

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值