matlab 绘制球面方程
3个回答
展开全部
我下面百分号后都是说明文字,这是在matlab里说明文字的标准写法。
clear
%
清除所有workspace中的变量。
[x,y]
=
meshgrid
([-1:.05:1]);
%
这是在打网点,自变量x和y的取值范围都是从-1到1,每个点的间距是0.05,间距越细密图形越精确;matlab画图都是通过把区间离散化为格点的方法画图的,计算每一个格点的函数值然后把每个点及其对应的函数值描上就是在画图。这里由于是二元函数,自变量所在是一个区域,所以最后格点就组成了一个网。
Z=sqrt(1-X.^2-Y.^2)+eps;
%
这就是在计算球面方程每一个点的函数数值了,+eps就是加matlab认为的非常非常小的一个数,这么做是只是为了让图形不至于出现可能的小坑,不加也无所谓;X右下方的.表示是在进行点对点运算,因为在这里,X和Y都是矩阵,如果不加点,matlab就会把X^2进行矩阵运算,但我们这里不是要这么做,我们只是在求每一点的函数值,也就是把每一个x格点平方就可以了,所以必须加点,让matlab知道我们是想这么算。
Z((X.^2+Y.^2)>1)=0;
%
这个含义很明显啊,(X.^2+Y.^2)>1显然没法开根号,要是不让z=0,matlab就会给你算出虚数,说不定也给画在图上,你想看到吗?所以就让所有这样的点数值为零。
mesh(X,Y,abs(Z))
%
就是在画三维图
title('球面x.^2+y.^2+z.^2=1');
axis([-1
2
-1
1
0
1]);
这些都是在设置画出来的图形。title是在加标题,axis是在标坐标轴上的点。
这里每一行的matlab命令后都有分号,加分号是为了不让这一行计算的结果显示在命令窗口里,导致窗口显示的东西过多。不加分号就自动输出了结果。如果我们需要看到什么结果,就不加分号就完了。
clear
%
清除所有workspace中的变量。
[x,y]
=
meshgrid
([-1:.05:1]);
%
这是在打网点,自变量x和y的取值范围都是从-1到1,每个点的间距是0.05,间距越细密图形越精确;matlab画图都是通过把区间离散化为格点的方法画图的,计算每一个格点的函数值然后把每个点及其对应的函数值描上就是在画图。这里由于是二元函数,自变量所在是一个区域,所以最后格点就组成了一个网。
Z=sqrt(1-X.^2-Y.^2)+eps;
%
这就是在计算球面方程每一个点的函数数值了,+eps就是加matlab认为的非常非常小的一个数,这么做是只是为了让图形不至于出现可能的小坑,不加也无所谓;X右下方的.表示是在进行点对点运算,因为在这里,X和Y都是矩阵,如果不加点,matlab就会把X^2进行矩阵运算,但我们这里不是要这么做,我们只是在求每一点的函数值,也就是把每一个x格点平方就可以了,所以必须加点,让matlab知道我们是想这么算。
Z((X.^2+Y.^2)>1)=0;
%
这个含义很明显啊,(X.^2+Y.^2)>1显然没法开根号,要是不让z=0,matlab就会给你算出虚数,说不定也给画在图上,你想看到吗?所以就让所有这样的点数值为零。
mesh(X,Y,abs(Z))
%
就是在画三维图
title('球面x.^2+y.^2+z.^2=1');
axis([-1
2
-1
1
0
1]);
这些都是在设置画出来的图形。title是在加标题,axis是在标坐标轴上的点。
这里每一行的matlab命令后都有分号,加分号是为了不让这一行计算的结果显示在命令窗口里,导致窗口显示的东西过多。不加分号就自动输出了结果。如果我们需要看到什么结果,就不加分号就完了。
东莞大凡
2024-11-14 广告
2024-11-14 广告
标定板认准大凡光学科技,专业生产研发厂家,专业从事光学影像测量仪,光学投影测量仪.光学三维测量仪,光学二维测量仪,光学二维测量仪,光学三维测量仪,光学二维测量仪.的研发生产销售。东莞市大凡光学科技有限公司创立于 2018 年,公司总部坐落于...
点击进入详情页
本回答由东莞大凡提供
展开全部
shit。。。刚刚发错地方了。。。
clear
%清屏
[x,y]=meshgrid([-1:.05:1]);
%生成网格点,从-1到1间隔0.05
z=sqrt(1-x.^2-y.^2)+eps;
%求出每个点上对应的z值
z((x.^2+y.^2)>1)=0;
%在满足x^2+y^2>1的网格点上的z值变成0
mesh(x,y,abs(z))
%画图
title('球面x.^2+y.^2+z.^2=1')
%加标题
axis([-1
2
-1
1
0
1])
%设置x,y,z轴坐标范围
clear
%清屏
[x,y]=meshgrid([-1:.05:1]);
%生成网格点,从-1到1间隔0.05
z=sqrt(1-x.^2-y.^2)+eps;
%求出每个点上对应的z值
z((x.^2+y.^2)>1)=0;
%在满足x^2+y^2>1的网格点上的z值变成0
mesh(x,y,abs(z))
%画图
title('球面x.^2+y.^2+z.^2=1')
%加标题
axis([-1
2
-1
1
0
1])
%设置x,y,z轴坐标范围
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
本视频展示如何用matlab绘制散圆状态图,可用于相关科研数据绘图!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询