matlab编程问题z(find(z>0))=nan作何解释a1=-0.05;%微凸体1的参数y=a*x^2+b*y^2+cb1=-0.2;c1=5;x=linspace(-sqrt(abs(c1/a1)),sqrt(abs(c1/a1)),100);y=linspace(-sqrt(abs(c1/b1)),sqrt(abs(c1/b1)),100);[x,y]=meshgrid(linspace(-sqrt(abs(c1/a1)),sqr
来源:学生作业帮助网 编辑:六六作业网 时间:2025/01/11 09:41:10
matlab编程问题z(find(z>0))=nan作何解释a1=-0.05;%微凸体1的参数y=a*x^2+b*y^2+cb1=-0.2;c1=5;x=linspace(-sqrt(abs(c1/a1)),sqrt(abs(c1/a1)),100);y=linspace(-sqrt(abs(c1/b1)),sqrt(abs(c1/b1)),100);[x,y]=meshgrid(linspace(-sqrt(abs(c1/a1)),sqr
matlab编程问题z(find(z>0))=nan作何解释
a1=-0.05;%微凸体1的参数y=a*x^2+b*y^2+c
b1=-0.2;
c1=5;
x=linspace(-sqrt(abs(c1/a1)),sqrt(abs(c1/a1)),100);
y=linspace(-sqrt(abs(c1/b1)),sqrt(abs(c1/b1)),100);
[x,y]=meshgrid(linspace(-sqrt(abs(c1/a1)),sqrt(abs(c1/a1)),100),linspace(-sqrt(abs(c1/b1)),sqrt(abs(c1/b1)),100));
z=a1*x.^2+b1*y.^2+c1;
z(find(z
matlab编程问题z(find(z>0))=nan作何解释a1=-0.05;%微凸体1的参数y=a*x^2+b*y^2+cb1=-0.2;c1=5;x=linspace(-sqrt(abs(c1/a1)),sqrt(abs(c1/a1)),100);y=linspace(-sqrt(abs(c1/b1)),sqrt(abs(c1/b1)),100);[x,y]=meshgrid(linspace(-sqrt(abs(c1/a1)),sqr
这是MATLAB绘图比较常用的一种做法.
把符合某个条件的值设为NaN,绘图时这些点就不会绘制,这样可以隐藏不合需要的那部分点.
就这个例子来说,是把满足z<0这个条件的点都换成NaN,也就是说,只绘制曲面的z>=0那部分(也可以把这句换成z(z<0)=NaN;效果完全相同).
比较一下,如果没有这句:
加上这句之后:
需要说明的是,由于这种做法是直接去掉一些网格点,往往会导致边缘不平滑.