首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >给定水平的切片轮廓图

给定水平的切片轮廓图
EN

Stack Overflow用户
提问于 2017-01-17 17:02:38
回答 2查看 65关注 0票数 1

我有以下函数(z),它应该输出一个图形,如果在f(x,y) = 0.001上切片,结果图像应该是一条消息。

我写了这段代码,但我不能把它切好。

代码语言:javascript
运行
复制
[x,y] = meshgrid(-1.5:0.3:1.5,-2.5:0.5:2.5) ;
z=exp(-4*x.^2-2*y.^2)*cos(8*x)+exp(-3*((2*x+1)/2).^2-6*y.^2);           
% meshc (x,y,z, [0.001 0.001]);

meshc (x,y,z);

我错过了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-17 17:12:58

您可能会寻找countour函数而不是meshcmeshc在网格图下绘制等高线图,但不需要网格图来查看消息。实际上,countour文档显示了如何只绘制特定级别的示例

代码语言:javascript
运行
复制
contour(x, y, z, [0.001 0.001])

我还怀疑您的函数没有正确定义。exp(...) * cos(...)应该读exp(...) .* cos(...)

糟糕的粒度使我相信,应该减少样本间距(也就是说,网格应该变得更细):

代码语言:javascript
运行
复制
[x,y] = meshgrid(-1.5:0.003:1.5,-2.5:0.005:2.5);

用更细的间距绘制原始函数的轮廓也说明了为什么我认为表达式中的*应该是.*

代码语言:javascript
运行
复制
[x,y] = meshgrid(-1.5:0.003:1.5,-2.5:0.005:2.5);
z=exp(-4*x.^2-2*y.^2)*cos(8*x)+exp(-3*((2*x+1)/2).^2-6*y.^2);
contour(x, y, z, [0.001 0.001])

除非消息是香肠形状的计数,否则我认为.*版本更有可能包含有用的信息(看起来像HI)。

票数 1
EN

Stack Overflow用户

发布于 2017-01-17 17:11:23

您需要使用contour而不是meshc来绘制网格与0.001的交集,这样您就可以精确地指定要计算轮廓的值。

代码语言:javascript
运行
复制
contour(x, y, z, [0.001 0.001]);

如果您确实想使用meshc,可以使用包含轮廓图句柄的输出将LevelList属性设置为所需的值。

代码语言:javascript
运行
复制
h = meshc(x, y, z);
set(findobj(h, 'type', 'contour'), 'LevelList', [0.001 0.001])

至于说出一条可理解的信息,我想智慧就在旁观者的眼里。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41702898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档