用MATLAB画3D图像的问题.
大家好。我刚用MATLAB. 需要高手的帮忙.我做数据挖掘, 要弄数据成像. 现在我有一个文件. 里面有上万个点. 比如说..
X Y Z
0.0 0.0 0.24325877219371428
-119.0 0.0214 -0.38536714085245105
-9.0 0.0642 -0.6639905962684893
-68.0 0.0856 -0.2110314044309649
-118.0 0.107 -0.12362223791790816
-89.0 0.107 -0.7208892321557419
-53.0 0.1498 -0.011445394635502648
-115.0 0.214 -0.03919114965828285
-74.0 0.2354 0.05074486039127324
. . .
. . .
. . .
. . .
我怎么才能用这写数据画出一个3D图像呢?
plot3(x,y,z) 可以画出,但只是点连接着点. 非常不直观. 怎么样画的想mesh等有曲线的图像呢?
我以前是用在JAVA里生成的2D图像. Z的值用不同的颜色来表示.(附件).
现在想通过MATLAB生成3D的图像. 就好像 MESH(PEAKS(25))或者 SURF 一类的曲线图像.
希望懂的朋友可以给点指点.
谢谢大家了
[ 本帖最后由 shfaye 于 2008-1-22 09:20 编辑 ] 拟合对于上万个点来说是不可能的吧? 或者很复杂? 我想像不出来一个曲面穿过上万个点的图像是怎么样.....需要TIPP:mad: mesh() mesh()这些都需要函数或者MATRIX.我现在只有点 试试看griddata,看一下帮助里面的例子 哦。忘记过来回帖了. 问题当天就解决了.....
我把数据分离了出来. 分别储存为3个文件. X 文件里面放的所有的 X的值, 一行(一列也无所谓), Y文件里放所有Y文件的值, Z文件里放的Z的MATRIX.
1 2 3 4 5 6 7 .....
1 x x x x x x x
2 x x x x x x x
3 x x x x x x x
4 x x x x x x x
5 x x x x x x x
.
.
.
有了X,Y和Z 的MATRIX. 问题就解决了.
MESH(X,Y,Z).
呵呵~~
当初的POLT3画出来的现在还不知道是什么.$frage$ 用mesh画完,在用hold on,然后再用plot3(x,y,z, '*'),就知道了,就是你对应的数据点。 3D图片..... LZ你好。我现在也有你这个问题。我现在有3列数据。我想把第一列存为matrix X,第二列为Y,第三列为matrix Z。我是这么弄的。
=textread('filenamen.txt',%f%f%f);
X=;
Y=;
Z=;
然后,我就用mesh(X,Y,Z).但始终用错:
??? Error using ==> mesh
Z must be a matrix, not a scalar or vector.
我要用什么命令才能让X,Y,Z是作为matrix存储呢。
$frage$ LZ快来啊。我真的很急于想解决问题啊。:mad: before
mesh
run meshgrid
see help file 原帖由 大肚飞天牛 于 2008-2-21 12:56 发表 http://dolc.de/forum/images/common/back.gif
LZ快来啊。我真的很急于想解决问题啊。:mad:
HI,我是分为3个文件储存的,当然你也可以储存在一个文件里. 我的X文件里是储存的所有的X的值, 一行一列无所谓
比如说1 2 3 4 5 6 7 8 ....
Y文件里储存的所有Y的值1 2 3 4 5 6 7 8 ....
Z文件里储存的所有Z的值, 以 MATRIX方式排列
Z11 Z12 Z13 Z14 ...
Z21 Z22 Z23 Z24 ...
Z31 Z32 Z33 Z34 ...
Z41 Z42 Z43 Z44 ...
. . . . ...
. . . . ...
. . . . ...
然后就可以了. 你的Z不是MATRIX的排列方式, 所以不能读入. 你仔细看看你的Z这个变量里到底是什么, 就会发现错误了. 一般来说是2维的数组ARRAYLIST,比如说30×30... 原帖由 shfaye 于 2008-2-21 15:38 发表 http://www.dolc.de/forum/images/common/back.gif
HI,我是分为3个文件储存的,当然你也可以储存在一个文件里. 我的X文件里是储存的所有的X的值, 一行一列无所谓
比如说1 2 3 4 5 6 7 8 ....
Y文件里储存的所有Y的值1 2 3 4 5 6 7 8 ....
Z文件里储存的所 ...
非常谢谢你的答复。我马上去试试。希望能成功。$支持$ 原帖由 大肚飞天牛 于 2008-2-21 12:52 发表 http://www.dolc.de/forum/images/common/back.gif
LZ你好。我现在也有你这个问题。我现在有3列数据。我想把第一列存为matrix X,第二列为Y,第三列为matrix Z。我是这么弄的。
=textread('filenamen.txt',%f%f%f);
X=;
Y=;
Z= ...
%下面是Help文档里面的
% MESH(x,y,Z) and MESH(x,y,Z,C), with two vector arguments replacing
% the first two matrix arguments, must have length(x) = n and
% length(y) = m where = size(Z).In this case, the vertices
% of the mesh lines are the triples (x(j), y(i), Z(i,j)).
% Note that x corresponds to the columns of Z and y corresponds to
% the rows.
% 你读入的数据要满足条件才能用Mesh,也就是length(x) = n and
% length(y) = m where = size(Z)
:) 原帖由 昵称已满 于 2008-2-25 21:18 发表 http://dolc.de/forum/images/common/back.gif
%下面是Help文档里面的
% MESH(x,y,Z) and MESH(x,y,Z,C), with two vector arguments replacing
% the first two matrix arguments, must have length(x) = n and
% length(y) = m where = si ...
谢谢mm的答复。问题前几天已经解决。我当时把问题想复杂了。其实最后用plot3()就搞定了。$汗$ $送花$ $送花$ 正好用上了 原帖由 shfaye 于 2008-2-21 16:38 发表 http://www.dolc.de/forum/images/common/back.gif
HI,我是分为3个文件储存的,当然你也可以储存在一个文件里. 我的X文件里是储存的所有的X的值, 一行一列无所谓
比如说1 2 3 4 5 6 7 8 ....
Y文件里储存的所有Y的值1 2 3 4 5 6 7 8 ....
Z文件里储存的所 ...
$支持$
我有个问题,原数据中X Y Z是一一对应的
即:如果X有10行数,Y也有10行数,Z对应的也是10行数
怎么让10行数的Z变成10×10=100个数?
Z11 Z12 Z13 ...
Z21 Z22 Z23 ...
Z31 Z32 Z33 ...
......
其中的Z11...是怎么来的?
可能是很简单的问题,但我想不通$害羞$ 麻烦帮我解惑,非常感谢$送花$ LZ来看看吧:) 原帖由 prune 于 2008-5-9 00:18 发表 http://www.dolc.de/forum/images/common/back.gif
$支持$
我有个问题,原数据中X Y Z是一一对应的
即:如果X有10行数,Y也有10行数,Z对应的也是10行数
怎么让10行数的Z变成10×10=100个数?
Z11 Z12 Z13 ...
Z21 Z22 Z23 ...
Z31 Z32 Z33 ...
......
其 ...
你这个问题是自己遇到的还是想象的?
一般是x是100个, y是100个, z是100个。
用mesh时是x10行, y10行, z是10x10。 问题在于Matlab不认你的Z 不是Matrix你要看看Z到底是不是个Matrix并且它的行和列是否和X,Y的一样。
在香港吃过
东芝空调维修威力空调维修
三钻空调维修
将军空调维修
乐华空调维修
HI,我是分为3个文件储存的,当然你也可以储存在一个文件里. 我的X文件里是储存的所有的X的值, 一行一列无所谓
比如说1 2 3 4 5 6 7 8 ....
Y文件里储存的所有Y的值1 2 3 4 5 6 7 8 ....
Z文件里储存的所 ...
shfaye 发表于 2008-2-21 16:38 http://www.dolc.de/forum/images/common/back.gif
wie kann ich den Z-Vektor in Z-Matrix umwandeln?? 严重怀疑中,z-Matrix?楼主确定得到你想要的结果了?到底是要3d曲线,还是要3d曲面? 好帖啊 全球塑料网 aaab2b.com
static/image/common/sigline.gif
肇庆网站设计 qiyouseo.com 个人经验(数据可改)
x=linspace(0,10,10); %x的区间是0到10, 分成10分,最后一个值可以改得更密集点
y=linspace(0,10,10);
=meshgrid(x,y);
Z=X+Y;
figure()
mesh(X,Y,Z)
页:
[1]