kevin19821 发表于 2007-8-12 15:01

三维绘图能否画得好看点

clc;
clear all;
t=0:511;
a=%长度为512
m=length(a);
n=round(log(t)./log(2));
n(1)=0;
plot3(t,n,a,'r')
这个三维图画出来的很不好看,能不能画的好看一点,用mesh,surf等总是有错误

[ 本帖最后由 eight 于 2007-8-15 20:43 编辑 ]

songzy41 发表于 2007-8-12 15:20

发现有2个错误:
1,t从0开始,log(0)=-inf;
2,a是复数,在作图时,或取实部,或取虚部,或取模(abs)。

kevin19821 发表于 2007-8-12 15:21

时频网格图是信号能量分布的三维图形反映。其作法为:以小波系数序号k(对应时间t)为横轴、小波分解层数j(对应频率)为纵轴构成的水平面为基准面作一曲面,其上
各点距离此基准面的高度H(表示能量)为H=2(a)^2

kevin19821 发表于 2007-8-12 15:22

t=0时候,我强制给n(1)赋值
H=2|a|^2

kevin19821 发表于 2007-8-12 15:26

怎么把画出的图形能转化成曲面呢?

kevin19821 发表于 2007-8-12 18:50

三维曲线怎么画成曲面了,我试了
waterfall(t,n,a),,surf,mesh都不对的

wondersoul 发表于 2007-8-12 19:12

回复 #5 kevin19821 的帖子

填充下颜色(黑色)试试,例如用fill3。

kevin19821 发表于 2007-8-12 19:18

关键问题是plot3是画曲线的命令,即使填充了颜色,但终究还是曲线,而不是曲面,现在的问题是如何能把上面的画成曲面

kevin19821 发表于 2007-8-12 19:19

用fill3之后的图形还是不对

[ 本帖最后由 kevin19821 于 2007-8-12 19:44 编辑 ]

花如月 发表于 2007-8-12 21:03

想得到曲面图,就用mesh。看你的意思是想根据t、a画n的曲面。个人觉得给信息不全,没有给出小波系数和幅值的关系。你给的实际的图是由幅值是由小波系数和序列点共同决定的,类似与Z=f(x,y)的形式,这样可以使用mesh。help mesh   help meshgrid

kevin19821 发表于 2007-8-13 09:31

谢谢楼上的,t=1:512总共512个点,小波分解层数有个函数关系式n=round(log(t)./log(2)),纵坐标n的范围并不能定出来,只能通过这个公式计算,在用mesh(t,n,a)时候,要求t和n为同阶的,但通过n=round(log(t)./log(2))和t不一定为同阶的.可以在下面的图中看到横坐标为0:511,纵坐标为-1:7这两个不是同阶的啊

zhlong 发表于 2007-8-15 08:16

回复 #11 kevin19821 的帖子

mesh不要横坐标和纵坐标一样的长度吧
页: [1]
查看完整版本: 三维绘图能否画得好看点