本帖最后由 terrytr 于 2013-9-11 15:17 编辑
给定四列的数据,怎么采用上述命令画图?为什么我画的图有问题呢?请高手解答下。
图1是用一个软件画的,采用克里金网格化。这种图就是想要的情况。但是这软件不完善,所以改用Matlab画。
但是Matlab画的图却是图2这个样子的。
主要原因,我估计是没有加网格化,但是不知道怎么加?我试过,但是会出问题。
所用数据我放在附件中了。烦请采用我给的数据画出类似的图。十分感谢~
代码在这儿:
clear;
a=load('全边界.dat');
x=a(:,1)';y=a(:,2)';z=a(:,4)';s=a(:,3)';
xb = min(x);
xe = max(x);
yb = min(y);
ye = max(y);
zb = min(z);
ze = max(z);
sb = min(s);
se = max(s);
x1 = linspace(xb, xe, 150);
y1 = linspace(yb, ye, 150);
z1 = linspace(zb, ze, 150);
s0 = linspace(sb, se, 150); % 对有效数据分割
[x1 y1 z1] = meshgrid(x1, y1, z1); % 生成网格数据点
s1 = zeros(size(x1, 1), size(x1, 2));
for i = 1 : size(s1, 1)
s1(i, :) = s0;
end
st = zeros(size(x1, 1), size(x1, 2), size(x1, 3));
for i = 1 : size(st, 3)
st(:, :, i) = s1;
end
s1 = st;
figure;
hold on;
view(3);
slice(x1,y1,z1,s1,[0.68,2.03,3.65],[0.33,0.6],[1.1761,-1.755,-2.2321]);
alpha(0.8) % 透明控制
shading interp %插值
xlabel('x / Km')
ylabel('y / Km')
zlabel('frequency / Hz')
colorbar
grid on
全边界.JPG
(34.42 KB, 下载次数: 327)
2013-9-11 15:06 上传
图1
untitled.jpg
(29.38 KB, 下载次数: 10)
2013-9-11 15:07 上传
2013-9-11 15:09 上传
点击文件名下载附件
535.23 KB, 下载次数: 6352
数据文件