最近和MATLAB天天打交道,画图这块又知道了一些新的指令,记录一下~
1、读取数据
p=xlsread('1.xlsx');
2、根据坐标画点
x=p(:,1); %取p的第一列,即横坐标
y=p(:,2); %p的第二列,即纵坐标
hold on
plot(x,y,'r*');
3、对点进行标号
(1)text(x(1),y(1),'1');
(2)批量画点标注
for i=1:1:20
text(p(i,1),p(i,2),num2str(i));
plot(p(i,1),p(i,2),'ro','MarkerSize',8);
hold on;
end
4、连线图(点与点之间进行连线)
(1)plot([x(1);x(75)],[y(1);y(75)]); %表示1和75连线
(2)
p=xlsread('邻接.xlsx');
x=p(:,1); %横坐标
y=p(:,2); %纵坐标
A=zeros(582,582); %矩阵初始化
u=[151;153;177;202;203;264;317;325;328;332;362;387;418;483;541;572;578;];
for k=1:928 %i点和j点有连线,一共928组
a=x(k);
b=y(k);
A(a,b)=1; %有连线的赋值为1
A(b,a)=1; %无向图,所以双向赋值
end %邻接矩阵构造完成,有连线的为1,没连线的赋值为0
B=xlsread('坐标.xlsx');
k=1:582; %批量画图
gplot(A(k,k),B,'b-*');
%新学习的函数gplot,A(K,K)为前面构造的邻接矩阵,B为坐标矩阵n×2的
hold on;
5、给定圆心和半径画圆
(1)
R = 30;
cx = 326;
cy = 355;
n = 1000;
circle(R,cx,cy,n);
此处需用到circle函数
function [x,y] = circle(R,cx,cy,nb_pts)
%%%%%%%%%%%%%%%%%%%
% 画圆函数
%%%%%%%%%%%%%%%%%%%
alpha=0:pi/nb_pts:2*pi;%角度[0,2*pi]
%R=2;%半径
x=R*cos(alpha)+cx;
y=R*sin(alpha)+cy;
plot(cx,cy,'r+',x,y,'m-');
grid on;
axis equal;
end
(2)批量画圆
for R=30:10:200
cx = 326;
cy = 355;
n = 1000;
circle(R,cx,cy,n);
end
网友评论