关于matlab画矢量图的问题
先看看我写的程序:load('data.mat')M=326;N=197;y=data(:,1);dir=data(:,2);forn=1:1:N+1;form=1:1:...
先看看我写的程序:
load('data.mat')
M=326;
N=197;
y=data(:,1);
dir=data(:,2);
for n=1:1:N+1;
for m=1:1:M+1;
H(n,m)=y((M+1)*(n-1)+m);
if H(n,m)==-9
H(n,m)=0;
end
DEGREE(n,m)=dir((M+1)*(n-1)+m);
HX(n,m)=H(n,m)*cos(pi*(DEGREE(n,m))/180);
HY(n,m)=H(n,m)*sin(pi*(DEGREE(n,m))/180);
end
end
xmax =114.823;
xmin = 114.497;
ymax = 22.839399615301;
ymin = 22.642323829592;
%
width=xmin:(xmax-xmin)/M:xmax;
depth=ymin:(ymax-ymin)/N:ymax;
[xx,yy]=meshgrid(width,depth);
quiver(xx,yy,HX,HY) ;
axis([xmin xmax ymin ymax ])
xlabel('经度')
ylabel('纬度')
title('波向图')
其中data.mat是在原始数据基础上计算后所得64746*5的矩阵,第一列是大小,第二列是方向度数值。
M=326是对目标区域划分的横向网格数,N是纵向网格数。
现在的问题是由于网格太多,画出来的矢量图很密,根本看不清箭头。
有没有哪位高手能不能帮我解决一下,看能不能在原有程序上修改一下,或者重新写程序,将网格量变
少一些,如变成原来的一半或四分之一,最重要是能看清箭头指向。非常感谢! 展开
load('data.mat')
M=326;
N=197;
y=data(:,1);
dir=data(:,2);
for n=1:1:N+1;
for m=1:1:M+1;
H(n,m)=y((M+1)*(n-1)+m);
if H(n,m)==-9
H(n,m)=0;
end
DEGREE(n,m)=dir((M+1)*(n-1)+m);
HX(n,m)=H(n,m)*cos(pi*(DEGREE(n,m))/180);
HY(n,m)=H(n,m)*sin(pi*(DEGREE(n,m))/180);
end
end
xmax =114.823;
xmin = 114.497;
ymax = 22.839399615301;
ymin = 22.642323829592;
%
width=xmin:(xmax-xmin)/M:xmax;
depth=ymin:(ymax-ymin)/N:ymax;
[xx,yy]=meshgrid(width,depth);
quiver(xx,yy,HX,HY) ;
axis([xmin xmax ymin ymax ])
xlabel('经度')
ylabel('纬度')
title('波向图')
其中data.mat是在原始数据基础上计算后所得64746*5的矩阵,第一列是大小,第二列是方向度数值。
M=326是对目标区域划分的横向网格数,N是纵向网格数。
现在的问题是由于网格太多,画出来的矢量图很密,根本看不清箭头。
有没有哪位高手能不能帮我解决一下,看能不能在原有程序上修改一下,或者重新写程序,将网格量变
少一些,如变成原来的一半或四分之一,最重要是能看清箭头指向。非常感谢! 展开
1个回答
展开全部
你可以将你的精细的数据插值到比较粗的网格上面,再作图.
[xx,yy]=meshgrid(width,depth);
quiver(xx,yy,HX,HY) ;
改成:
[xx,yy]=meshgrid(width,depth);
[xx1,yy1]=meshgrid(xmin:(xmax-xmin)/M*5:xmax,depth=ymin:(ymax-ymin)/N*5:ymax;); %粗网格,这里步长被我乘5了,你自己调
HX1=griddata(xx,yy,HX,xx1,yy1);%插值
HY1=griddata(xx,yy,HY,xx1,yy1);%插值
quiver(xx1,yy1,HX1,HY1) ;
[XI,YI,ZI] = GRIDDATA(X,Y,Z,XI,YI)
[xx,yy]=meshgrid(width,depth);
quiver(xx,yy,HX,HY) ;
改成:
[xx,yy]=meshgrid(width,depth);
[xx1,yy1]=meshgrid(xmin:(xmax-xmin)/M*5:xmax,depth=ymin:(ymax-ymin)/N*5:ymax;); %粗网格,这里步长被我乘5了,你自己调
HX1=griddata(xx,yy,HX,xx1,yy1);%插值
HY1=griddata(xx,yy,HY,xx1,yy1);%插值
quiver(xx1,yy1,HX1,HY1) ;
[XI,YI,ZI] = GRIDDATA(X,Y,Z,XI,YI)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询