找回密码
 注册

微信登录

微信扫一扫,快速登录

查看: 19914|回复: 26

[电子] 用MATLAB画3D图像的问题.

[复制链接]
发表于 2008-1-22 09:39 | 显示全部楼层 |阅读模式
大家好。我刚用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 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册 微信登录

×

评分

1

查看全部评分

Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
 楼主| 发表于 2008-1-22 09:57 | 显示全部楼层
拟合对于上万个点来说是不可能的吧? 或者很复杂? 我想像不出来一个曲面穿过上万个点的图像是怎么样.....需要TIPP:mad:
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2008-1-22 15:24 | 显示全部楼层
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-22 15:40 | 显示全部楼层
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2008-1-26 23:09 | 显示全部楼层
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-27 14:44 | 显示全部楼层
哦。忘记过来回帖了. 问题当天就解决了.....

我把数据分离了出来. 分别储存为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$

评分

1

查看全部评分

Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2008-1-27 14:47 | 显示全部楼层
用mesh画完,在用hold on,然后再用plot3(x,y,z, '*'),就知道了,就是你对应的数据点。

评分

1

查看全部评分

Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-27 15:42 | 显示全部楼层
3D图片.....

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册 微信登录

×

评分

1

查看全部评分

Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2008-2-21 13:52 | 显示全部楼层
LZ你好。我现在也有你这个问题。我现在有3列数据。我想把第一列存为matrix X,第二列为Y,第三列为matrix Z。我是这么弄的。

    [x,y,z]=textread('filenamen.txt',%f%f%f);
    X=[x];
    Y=[y];
    Z=[z];
   
然后,我就用mesh(X,Y,Z).但始终用错:
??? Error using ==> mesh
Z must be a matrix, not a scalar or vector.

我要用什么命令才能让X,Y,Z是作为matrix存储呢。
$frage$

评分

1

查看全部评分

Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2008-2-21 13:56 | 显示全部楼层
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2008-2-21 14:00 | 显示全部楼层
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-2-21 16:38 | 显示全部楼层
原帖由 大肚飞天牛 于 2008-2-21 12:56 发表
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...
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2008-2-21 23:18 | 显示全部楼层
原帖由 shfaye 于 2008-2-21 15:38 发表


HI,我是分为3个文件储存的,当然你也可以储存在一个文件里. 我的X文件里是储存的所有的X的值, 一行一列无所谓
比如说  1 2 3 4 5 6 7 8 ....
Y文件里储存的所有Y的值  1 2 3 4 5 6 7 8 ....

Z文件里储存的所 ...

非常谢谢你的答复。我马上去试试。希望能成功。$支持$
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2008-2-25 22:18 | 显示全部楼层
原帖由 大肚飞天牛 于 2008-2-21 12:52 发表
LZ你好。我现在也有你这个问题。我现在有3列数据。我想把第一列存为matrix X,第二列为Y,第三列为matrix Z。我是这么弄的。

    [x,y,z]=textread('filenamen.txt',%f%f%f);
    X=[x];
    Y=[y];
    Z=[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 [m,n] = 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 [m,n] = size(Z)
:)
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2008-2-26 06:19 | 显示全部楼层
原帖由 昵称已满 于 2008-2-25 21:18 发表


%  下面是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 [m,n] = si ...


谢谢mm的答复。问题前几天已经解决。我当时把问题想复杂了。其实最后用plot3()就搞定了。$汗$
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2008-5-8 15:15 | 显示全部楼层
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2008-5-9 00:18 | 显示全部楼层
原帖由 shfaye 于 2008-2-21 16:38 发表


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...是怎么来的?

可能是很简单的问题,但我想不通$害羞$ 麻烦帮我解惑,非常感谢$送花$
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2008-5-9 19:48 | 显示全部楼层
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2008-7-22 23:07 | 显示全部楼层
原帖由 prune 于 2008-5-9 00:18 发表

$支持$
我有个问题,原数据中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。
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2008-11-22 17:09 | 显示全部楼层
问题在于Matlab不认你的Z 不是Matrix你要看看Z到底是不是个Matrix并且它的行和列是否和X,Y的一样。
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2008-11-26 20:22 | 显示全部楼层
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2009-5-19 10:56 | 显示全部楼层
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



wie kann ich den Z-Vektor in Z-Matrix umwandeln??
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2009-5-19 15:47 | 显示全部楼层
严重怀疑中,z-Matrix?楼主确定得到你想要的结果了?到底是要3d曲线,还是要3d曲面?
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2009-9-23 10:51 | 显示全部楼层
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2012-5-31 03:49 | 显示全部楼层
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2014-1-28 23:47 | 显示全部楼层
个人经验(数据可改)
x=linspace(0,10,10); %x的区间是0到10, 分成10分,最后一个值可以改得更密集点
y=linspace(0,10,10);
[X,Y]=meshgrid(x,y);
Z=X+Y;
figure()
mesh(X,Y,Z)
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册 微信登录

本版积分规则

Archiver|手机版|AGB|Impressum|Datenschutzerklärung|萍聚社区-德国热线-德国实用信息网

GMT+2, 2025-5-25 03:40 , Processed in 0.112783 second(s), 36 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表