在matlab中如何绘制部分球面网格图

球面方程为:x^2+y^2+z^2=300^2
x∈[-150~300],y∈[0~300],z∈[-150~150]
请给出具体程序,若正确追加分值,需要网格图,最好网格密度小一点
如何在这个球面基础上,绘制一些平面与该球面的交割线呢?这些平面经过Z轴,且每个平面夹角为14.3°,绘制15个这样的交割线,请高手指点

你的数据范围大,你要网格密度小,这得看你的机器的本事了。
n=50; %调大这个
[x,y,z]=sphere(n);
x=x*300;
y=y*300;
z=z*300;
z(x<-150 | x>300)=nan;
z(y<0 |y>300)=nan;
z(z<-105|z>150)=nan;
mesh(x,y,z)追问

你这个程序出错了,怎么回事?

追答

你复制进去,
等一下再改n=50
我这里没有问题。

追问

??? Error using ==> sphere
Too many output arguments.
复制进命令框,回车之后出现以上错误信息,怎么回事?你说的等一下再改50是什么意思?

追答

你的MATLAB版本是多少?
我计算的结果如图。

n是将球多少等分,n增大,就提分辨率,但计算量也增大

追问

我发现在我的matlab7.0中一输入[x,y,z]=sphere(50)就会出错,而输入sphere(50),就会出现半径为50的半球,不是一个完整的球,而且这个球的参数方程不是我现在设置的,而是我之前设置过的,我感觉自动默认了之前的参数设置,太奇怪了,请问怎么处理?

追答

你看一下
which sphere
返回的是什么,是不是你的同名函数文件。

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-04-05
x=-150:300;y=0:300;
[X,Y]=meshgrid(x,y);
z1=sqrt(90000-X.^2-Y.^2);
z2=-sqrt(90000-X.^2-Y.^2);
for i=1:length(x)*length(y)
if z1(i)>150
z1(i)=NaN;
end
if z2(i)<-150
z2(i)=NaN;
end
end
mesh(x,y,z1)
hold on
mesh(x,y,z2)
hold off追问

如何在这个球面基础上,绘制一些平面与该球面的交割线呢?这些平面经过Z轴,且每个平面夹角为14.3°,绘制15个这样的交割线,请高手指点

matlab如何生成网格图像?
1、点击图标,打开matlab。2、输入代码:[x,y]=meshgrid(1:0.1:10, 1:0.1:10);z=x.^2+y.^2;surf(x,y,z)3、点击运行。4、在弹出的文件存储页面中,选择一个任意位置,点击保存即可。5、保存后matlab自动运行程序,得出的图像如下:

matlab如何生成网格图像?
有了网格点的坐标矩阵后,就可以使用`surf`、`mesh`等函数来绘制三维图形了。例如,可以使用`Z = X.^2 + Y.^2`生成一个高度矩阵`Z`,然后使用`surf`绘制一个三维曲面图。这样,就可以通过`meshgrid`函数和MATLAB的三维绘图函数来生成和展示网格图像了。总的来说,`meshgrid`函数是MATLAB中生成网...

如何用matlab画网格图?
1、三维曲面或网线图的数据准备:要绘制函数z=f(x,y)所代表的三维空间曲面,需要做以下准备:(1) 确定自变量x,y的取值范围和间隔,x=x1:dx:x2,y=y1:dy:y2;(2)构成xoy面上的自变量格点矩阵,[X,Y]=meshgrid(x,y);(3)获得自变量在格点上的函数值,即Z=f(X,Y)。2、绘制曲面或网线图...

matlab圆域上绘制网线图
clc;clear 怎么改变一下把这个区域变成一个圆形?x=[-3:0.15:3];y=x;[x,y]=meshgrid(x,y);z=4*x.*exp(-x.^2-y.^2);figure(1)mesh(x,y,z){ z1=3*cplxgrid(20);%在复平面上面得到一个21*41的网格,x,y分别为其实部和虚部 x=real(z1);y=imag(z1);z=4*x.*exp(-x...

在matlab里如何在圆里画网格
本视频展示如何用matlab绘制散圆状态图,可用于相关科研数据绘图!

怎样在matlab图形中添加网格?
有几种方法,你借鉴一下:\\x0d\\x0ax=0:0.01:2;y=x;plot(x,y);\\x0d\\x0a1)set(gca,'XGrid','on');\\x0d\\x0a2)set(gca,'XMinorGrid','on');\\x0d\\x0a3)grid on;\\x0d\\x0a4)grid minor;

如何用matlab画出这样的图,当然是圆形的,中间是网格
0,2*pi,600);r0=8:2:16;for i=1:length(r0)r=r0(i);x=r*cos(theta);y=r*sin(theta);plot(x,y)hold on if i==length(r0)x1=r0(1)*cos(theta);y1=r0(1)*sin(theta);for j=1:20:length(theta)plot([x1(j),x(j)],[y1(j),y(j)])end end end axis equal ...

matlab圆域上绘制网线图
z1=3*cplxgrid(20);%在复平面上面得到一个21*41的网格,x,y分别为其实部和虚部 x=real(z1);y=imag(z1);z=4*x.*exp(-x.^2-y.^2);mesh(x,y,z)

用MATLAB如何给图加网格
有几种方法,你借鉴一下:x=0:0.01:2;y=x;plot(x,y);1)set(gca,'XGrid','on');2)set(gca,'XMinorGrid','on');3)grid on;4)grid minor;

怎样在matlab图形中添加网格
1、打开MATLAB的plot函数的一个图形。2、在plot函数后加上grid on即可添加网格线。3、如果想要添加网格线的数据,及添加更密集的网格线,可以使用grid minor这个指令。4、对于使用plotyy进行双y轴作图的函数来说,grid on或者grid minor只能添加横坐标网格线。5、对于在MATLAB图形显示窗口工具——查看布局...

相似回答