Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-10-19, 21:17   #1
huanghuan
初级会员
 
注册日期: 2008-10-09
年龄: 37
帖子: 26
声望力: 17
huanghuan 正向着好的方向发展
默认 [求助]看看我的程序错在哪里

给出一任意空间粒子的密度分布函数 n=f(x,y,z)=cos(z)*exp[-(x^2+y^2)/4],画出空间粒子密度的梯度场及等密度面。x、y的范围是[-2:0.5:2],z的范围是[0:0.5:4].
我的程序如下:
clear
>> x=-2:0.5:2;
>> y=x;
>> z=0:0.5:4;
>> [X,Y,Z]=meshgrid(x,y,z);
>> n=cos(Z).*exp(-(X.^2+Y.^2)/4);
>> [pX,pY,pZ]=gradient(n);
>> contour3(n);
??? Error using ==> contourc
Contour data must have 2 dimensions.

Error in ==> D:\MATLAB6p5\toolbox\matlab\specgraph\contours.m
On line 57 ==> CS=contourc(varargin{numarg_for_call});

Error in ==> D:\MATLAB6p5\toolbox\matlab\specgraph\contour3.m
On line 80 ==> [c,msg] = contours(varargin{1:nin});
huanghuan 当前离线   回复时引用此帖
旧 2008-10-19, 22:04   #2
meteora1005
高级会员
 
注册日期: 2008-05-31
年龄: 38
帖子: 104
声望力: 19
meteora1005 正向着好的方向发展
默认 回复: [求助]看看我的程序错在哪里

contour3的输入矩阵必须是二维的,但你的n是三维矩阵,如果改为:
contour3(n(:,:,1));%n的第一页,n共有9页
倒是能画出图来,但不知是不是符合你的要求。
meteora1005 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 14:05


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.