You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Matlab的meshgrid与surf函数创建3D伪球面(曳物线)

错误原因

  • 你代码中计算得到的z是一维行向量,和meshgrid生成的二维矩阵x、y维度不匹配,拼接为S的操作不会修改z本身的维度结构,因此传入surf时触发报错。
  • 额外逻辑错误:你最初对x、y的悬链线坐标转换计算是无效的,后续调用meshgrid时直接覆盖了x、y的取值,没有用到你预设的坐标转换逻辑。

修正代码

你需要先生成二维参数网格,再基于网格逐点计算三个坐标值,保证三者维度一致,满足surf的入参要求:

v = linspace(0,2*pi);
w = linspace(0,5);
% 先生成参数网格
[V,W] = meshgrid(v,w);
% 基于网格逐点计算坐标
x = cos(V)./cosh(W);
y = sin(V)./cosh(W);
z = W - tanh(W);
% 绘图
h = surf(x,y,z);
set(h,'edgecolor','none')
colormap summer

运行上述代码即可生成你需要的3D悬链面效果。

内容的提问来源于stack exchange,提问作者Antoni Parellada

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 23:57:02