急!!在MATLAB下怎样制作grid(规则网格数据)II

发布网友

我来回答

2个回答

热心网友

大致弄了一个:
基本符合要求

xyz=load('data.txt');
x=xyz(:,1);
y=xyz(:,2);
z=xyz(:,3);

minx=min(x);
maxx=max(x);
miny=min(y);
maxy=max(y);

%以下将最大最小值向0.5看齐
minx=floor(minx/0.5)*0.5;
maxx=ceil(maxx/0.5)*0.5;
miny=floor(miny/0.5)*0.5;
maxy=ceil(maxy/0.5)*0.5;
xx=minx:0.5:maxx;
yy=miny:0.5:maxy;

plot(x,y,'.')
set(gca,'xtick',xx,'ytick',yy)
grid on

[gx,gy]=meshgrid(xx,yy);
averz=zeros(size(gx)-1);
nz=zeros(size(gx)-1);

for iz=1:length(z)
flag=0;
for ix=1:length(xx)-1
if x(iz)>=xx(ix)&& x(iz)<xx(ix+1)
for iy=1:length(yy)-1
if y(iz)>=yy(iy) && y(iz)<yy(iy+1)
averz(iy,ix)=averz(iy,ix)+z(iz);
nz(iy,ix)=nz(iy,ix)+1;
flag=1;
break;
end
end
end
if flag==1
break;
end
end
end

for ix=1:length(xx)-1
for iy=1:length(yy)-1
if (nz(iy,ix)~=0)
averz(iy,ix)=averz(iy,ix)/nz(iy,ix);
end
end
end

figure
bar3(nz)
set(gca,'xticklabel',xx,'yticklabel',yy)
title('个数')

figure
bar3(averz)
set(gca,'xticklabel',xx,'yticklabel',yy)
title('平均值')

热心网友

grid on;

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com