matlab如何使用slice,Matlab的slice命令

本帖最后由 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 上传

442a53943febe9465fc072b4fbe10813.gif

b2a5a3e0dcc7d508e00275fe42fce1b5.gif

图1

0e7e5b24f386aad636f1f2c480546a06.png

untitled.jpg

(29.38 KB, 下载次数: 10)

2013-9-11 15:07 上传

442a53943febe9465fc072b4fbe10813.gif

b2a5a3e0dcc7d508e00275fe42fce1b5.gif

1fe94f2b4aabe5b1b203bc89f35680ff.png

6401f784720721fb37e848ed3e063dbe.gif

2013-9-11 15:09 上传

点击文件名下载附件

535.23 KB, 下载次数: 6352

数据文件

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值