gpt4 book ai didi

matlab - 为什么不是球形图?如何在 Matlab 中绘制 3D 极坐标图?

转载 作者:行者123 更新时间:2023-12-02 05:18:40 26 4
gpt4 key购买 nike

[r,t] = meshgrid(linspace(0,2*pi,361),linspace(0,pi,361));
[x,y]=pol2cart(sin(t)*cos(r),sin(t)*sin(r));
%[x,y]=pol2cart(r,t);
surf(x,y);

enter image description here

我玩过这个 addon但试图为此找到一个默认功能。如何绘制 3D 极坐标图?

我正在努力帮助这个人形象化不同的积分 here .

最佳答案

你的代码有几个问题:

  • 您已经使用 sin(theta)*cos(phi)sin(theta)*sin(phi) 位将球坐标转换为笛卡尔坐标。你为什么要调用 pol2cart(而且,我们不是在极坐标下工作!)?
  • 正如 natan 指出的那样,您的情节中没有第三维(即 z)。对于单位半径,r在球域中可以省略,它完全由thetaphi定义,但在笛卡尔域中,您拥有所有三个 xyzz 的公式是 z = cos(theta)(单位半径)。
  • 您没有阅读 surf 的文档,它说:

    surf(Z,C) plots the height of Z, a single-valued function defined over a geometrically rectangular grid, and uses matrix C, assumed to be the same size as Z, to color the surface.

    换句话说,您的 surf(x,y) 行仅绘制矩阵 x 并使用 y 作为颜色图为其着色。

下面是上面的代码,错误已修复并正确绘制:

[f,t] = meshgrid(linspace(0,2*pi,361),linspace(0,pi,361));
x = sin(t)*cos(f);
y = sin(t)*sin(f);
z = cos(t);
surf(x,y,z)

enter image description here

关于matlab - 为什么不是球形图?如何在 Matlab 中绘制 3D 极坐标图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14227914/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com