如何用matlab画出一个椭球体?
请问如何用matlab画出一个椭球体。另外,请问有没有办法把matlab里矩阵中复数变为实数(虚部为0的保留实数,虚部不为0的变为实数0)?非常感谢“化学工程”大哥给出的...
请问如何用matlab画出一个椭球体。
另外,请问有没有办法把matlab里矩阵中复数变为实数(虚部为0的保留实数,虚部不为0的变为实数0)?
非常感谢“化学工程”大哥给出的答案,那两个命令果然能画出椭球体。不过,这里还需要补充一下,请各位大侠相助。
我做椭球的时候用的命令是
x=-3:0.1:3;
y=-2:0.1:2;
[X,Y]=meshgrid(x,y);
z0=sqrt(1-X.*X/9-Y.*Y/4);
surf(X,Y,z0);
软件提示:
??? Error using ==> surf
X, Y, Z, and C cannot be complex.
请问是为什么?这些命令在有些机器上又能运行得好好的,没一点问题,为什么到我机子上就不行了呢 ?
我装的是matlab 7.3.0.267(R2006b)这个版本,能运行的是matlab 7.0 版本。
是不是要做什么设置,使矩阵中的实数就是实数,没有虚部(这些命令运行后z0里的实数在我的电脑上相比都有一个等于0的虚部)呢?
化学工程大哥,为什么我用你给的方法还是得不到椭球体呢?
我是说后两种方法,3和4。
第三种画出来的是两个不完整的半椭球,下面一个还没显示完全,而第四个画出来的更是神奇,只有两个面了。
请解释下。感谢。 展开
另外,请问有没有办法把matlab里矩阵中复数变为实数(虚部为0的保留实数,虚部不为0的变为实数0)?
非常感谢“化学工程”大哥给出的答案,那两个命令果然能画出椭球体。不过,这里还需要补充一下,请各位大侠相助。
我做椭球的时候用的命令是
x=-3:0.1:3;
y=-2:0.1:2;
[X,Y]=meshgrid(x,y);
z0=sqrt(1-X.*X/9-Y.*Y/4);
surf(X,Y,z0);
软件提示:
??? Error using ==> surf
X, Y, Z, and C cannot be complex.
请问是为什么?这些命令在有些机器上又能运行得好好的,没一点问题,为什么到我机子上就不行了呢 ?
我装的是matlab 7.3.0.267(R2006b)这个版本,能运行的是matlab 7.0 版本。
是不是要做什么设置,使矩阵中的实数就是实数,没有虚部(这些命令运行后z0里的实数在我的电脑上相比都有一个等于0的虚部)呢?
化学工程大哥,为什么我用你给的方法还是得不到椭球体呢?
我是说后两种方法,3和4。
第三种画出来的是两个不完整的半椭球,下面一个还没显示完全,而第四个画出来的更是神奇,只有两个面了。
请解释下。感谢。 展开
3个回答
东莞大凡
2024-11-19 广告
2024-11-19 广告
板格标定棋盘是我们东莞市大凡光学科技有限公司在精密光学测量领域的重要工具。它采用高精度设计,确保每一个格板都达到严格的校准标准。通过使用板格标定棋盘,我们能够有效地对光学测量系统进行校准,从而提升测量的准确性和可靠性。这一工具在光学仪器的研...
点击进入详情页
本回答由东莞大凡提供
展开全部
补充:
【3】你用这个吧,因为开方使z0成为复数了。
>> ezsurf('sqrt(1-X.*X/9-Y.*Y/4)')
【4】或改变x、y的取值范围:
>> x=-2:0.1:2;
y=-1:0.1:1;
[X,Y]=meshgrid(x,y);
z0=sqrt(1-X.*X/9-Y.*Y/4);
surf(X,Y,z0);
【1】
>>[X,Y,Z]=ELLIPSOID(0,0,0,1,2,3,40);
>> surf(X,Y,Z)
【2】
clear;clc
x=[3+2*i;5];
n=length(x);
xx=zeros(size(x));
for k=1:n
if imag(x(k))==0
xx(k)=real(x(k));
else
xx(k)=0;
end
end
xx
运行结果:
xx =
0
5
【3】你用这个吧,因为开方使z0成为复数了。
>> ezsurf('sqrt(1-X.*X/9-Y.*Y/4)')
【4】或改变x、y的取值范围:
>> x=-2:0.1:2;
y=-1:0.1:1;
[X,Y]=meshgrid(x,y);
z0=sqrt(1-X.*X/9-Y.*Y/4);
surf(X,Y,z0);
【1】
>>[X,Y,Z]=ELLIPSOID(0,0,0,1,2,3,40);
>> surf(X,Y,Z)
【2】
clear;clc
x=[3+2*i;5];
n=length(x);
xx=zeros(size(x));
for k=1:n
if imag(x(k))==0
xx(k)=real(x(k));
else
xx(k)=0;
end
end
xx
运行结果:
xx =
0
5
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的椭圆的方程有问题啊,本来要的是都是正数的,可以你的sqrt()函数里面的两有负值了自然有了复数了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询