leoplough 发表于 2007-5-17 23:42

关于画图的疑问

我想画一幅高斯波束扩展过程中的的三维图,其中有三个变量,x,y,z,
函数是:
    w=w0*(1+(z/z0).^2).^0.5 ;
    phi=(w0./w).*exp(-(x.^2+y.^2)./(w.^2));
各变量的范围是:
    z0和w0是常量,比如设成10
    又:x=-10:0.1:10;
          y=-10:0.1:10;
          z=-10:0.1:10;
我想在三维中画出phi的图来,可是我不知道用什么函数来实现它,plot3好像不成。
请各位帮忙看一下,谢谢。

spano 发表于 2007-5-18 22:46

....

          x=-10:0.1:10;
          y=-10:0.1:10;
          z=-10:0.1:10;

x,y,z都成了空的

eight 发表于 2007-5-18 23:26

原帖由 spano 于 2007-5-18 22:46 发表 http://www.chinavib.com/forum/images/common/back.gif
....

          x=-10:0.1:10;
          y=-10:0.1:10;
          z=-10:0.1:10;

x,y,z都成了空的

这倒不会,是从 -10 到 10,并非 10 到 10

spano 发表于 2007-5-19 08:18

回复 #3 eight 的帖子

失误,不过如果这样的话,用plot3是没有什么问题的。
你debug看看,是不是程序运行过程中x,y,z成了空的矩阵

studyboy 发表于 2007-5-19 09:06

三个变量   画三维图好像不可能吧

xjzuo 发表于 2007-5-19 09:06

这是一个"四维图",一般没法"在三维中画出phi的图来";
只有当某一维用颜色表示时,我们才能在三维空间直观地观看.
至于slice之类的函数,并不直观;此外,它对"扩展过程"可能无能为力.

至于如下取值:
x=-10:0.1:10;
y=-10:0.1:10;
z=-10:0.1:10;
本身没有错,因为x,y,z三个自由度是独立的,可任意取值.

pengweicai 发表于 2007-5-19 10:36

可以考虑将z变量固定,然后画3维图。
从函数来看,Z变量好像是个缩放因子。如果固定z的话,应该可以看到那个函数的大概趋势。

xjzuo 发表于 2007-5-19 14:15

关键是LZ没有说清楚原问题.
如果是pengweicai 说的那样的话,作一个循环,再利用drawnow,即可显示动画.
也即"扩展过程".

spano 发表于 2007-5-19 18:48

我觉得用动画显示合理些

leoplough 发表于 2007-9-6 16:00

当初我理解这个问题有错误,这种问法都是错误的,感谢大家的帮助。
页: [1]
查看完整版本: 关于画图的疑问