drawdag.m
来自「麻省理工学院的人工智能工具箱,很珍贵,希望对大家有用!」· M 代码 · 共 42 行
M
42 行
function drawDag(dag,Loc)
radio=0.02; %Tama駉 del nodo
grosorflecha=150*radio;
fg=figure('menubar','figure','Resize','on');
PP=get(fg,'Position');
set(fg,'Position',[PP(1:2) 400 400])
fidbnd=fopen('worldcoasthi.bin','rb','ieee-be');
bnd=fread(fidbnd,[2,inf],'single')';
fclose(fidbnd);
maxx=max(Loc(:,1));minx=min(Loc(:,1));
maxy=max(Loc(:,2));miny=min(Loc(:,2));
Dx=maxx-minx;
Dy=maxy-miny;
maxx=maxx+Dx*.1;minx=minx-Dx*.1;
maxy=maxy+Dy*.1;miny=miny-Dy*.1;
axes('units','normal','position',[0 0 1 1],'DataAspectRatioMode','Manual','DataAspectRatio',[1 1 1],...
'box','on','xlimmode','manual','ylimmode','manual',...
'XTickMode','manual','Xtick',[],'YTickMode','manual','Ytick',[],...
'XLim',[minx maxx],'YLim',[miny maxy]);
line(bnd(:,1),bnd(:,2),'Color','k','linestyle','-');
for k=1:size(Loc,1)
rectangle('Position',[Loc(k,1)-radio,Loc(k,2)-radio,2*radio,2*radio],'Curvature',[1,1],'LineWidth',2*radio);
i=find(dag(k,1:end)==1)';
if ~isempty(i)
for j=1:size(i,1)
u=Loc(i(j),1)-Loc(k,1);
v=Loc(i(j),2)-Loc(k,2);
alfa=atan(abs(v/u));
x1=Loc(k,1)+sign(u)*radio*cos(alfa);
y1=Loc(k,2)+sign(v)*radio*sin(alfa);
xf=Loc(i(j),1)-sign(u)*radio*cos(alfa);
yf=Loc(i(j),2)-sign(v)*radio*sin(alfa);
arrow([x1,y1],[xf,yf],'TipAngle',16,'Length',grosorflecha,'width',radio);
end
end
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?