注册 登录
编程论坛 Matlab

[求助]如何对读入的数据画图着色

purm 发布于 2007-04-13 15:34, 1617 次点击

读入一组数据,如:
11 11 9
7 13 11
14 17 20
11 13 9
43 51 69
38 46 76
61 132 186
75 135 180
38 88 115
28 36 55
12 12 14
18 27 30
18 19 29
17 15 18
19 36 48
32 47 10
42 65 92
57 66 151
44 55 90
114 145 257
35 58 68
11 12 15
13 9 15
10 9 7

以上三列分别对应坐标轴的X,Y,Z的值,请问,如何根据这组数据.用函数meshgrid确定网格,并用surf函数画图着色?

4 回复
#2
hitzhang2007-04-13 15:57

一个苯方法
>> x=1:3

x =

1 2 3

>> y=1:3

y =

1 2 3

>> [x y]=meshgrid(x,y)

x =

1 2 3
1 2 3
1 2 3


y =

1 1 1
2 2 2
3 3 3

>> z=[nan 1 3;nan 2 3;3 nan 8]

z =

NaN 1 3
NaN 2 3
3 NaN 8

>> surf(x,y,z)

#3
purm2007-04-14 10:05
回复:(hitzhang)一个苯方法>> x=1:3x = ...
版主能不能解释一下z=[nan 1 3;nan 2 3;3 nan 8]是什么意思,我就是不会处理Z与X,Y的关系
所以画不出图来,谢谢
#4
purm2007-04-14 11:52

另外,我试了一下斑竹的方法,所画的图好象与我读入的数据没有什么关系.
可我读入的数据实际上是某个图在坐标轴上的点的集合,现在要根据这些坐标还原图,
并根据Z值的大小对还原出来的图进行着色.
我原来的思路是想取读入数据中的X,Y轴的数据最大最小值来画网格区域[x,y]=meshgrid(min:1:max);
然后surf(x,y,z)作图,可是老报错,好象是Z和X,Y不是一一对应的关系
希望高手指点一下,我该怎么根据读入的数据确定Z值与网格X,Y的关系

#5
hitzhang2007-04-15 11:28
是个例子
x y z对应点[x(i) y(i) z(i)],z(i)无定义设置为非数nan
如果你想还原原图像尝试一下三角线性差值griddata函数
1