matlab编程【if all(imag(z([k-1:k+1],[j-1:j+1])))~=0 z1(k,j)=NaN;】这句话是什么意思

全程序是这样的...a=input('a=');b=input('b=');c=input('c=');d=input('d=');N=input('N=');%以上为输... 全程序是这样的...

a=input('a=');
b=input('b=');
c=input('c=');
d=input('d=');
N=input('N=');%以上为输入参数,N为网格线数目
xgrid=linspace(-abs(a),abs(a),N);%建立x网格坐标
ygrid=linspace(-abs(b),abs(b),N);%建立y网格坐标
[x,y]=meshgrid(xgrid,ygrid);%确定NXN个点的x,y网格坐标
z=c*sqrt(d-y.*y/b/b-x.*x/a/a);u=1;%u=1表示z要取正负值
z1=real(z);%取z的实部z1
for k=2:N-1%以下7行程序的作用是取消z中含虚数的点
for j=2:N-1
【 if imag(z(k,j))~=0 z1(k,j)=0;】%这里为什么令z1=0
end
【 if all(imag(z([k-1:k+1],[j-1:j+1])))~=0 z1(k,j)=NaN;】%这句话是什么意思...
end
end
end
surf(x,y,z1),hold
if u==1 z2=-z1;
surf(x,y,z2)%u=1时加画负半面,并加坐标轴
axis([-abs(a),abs(a),-abs(b),abs(b),-abs(c),abs(c)]);
end
xlabel('x'),ylabel('y'),zlabel('z')
hold off

题目背景是
已知二次曲面方程为 x^2/a^2+y^2/b^2+z^2/c^2=d,要求讨论参数a,b,c,d 对其形状的影响并画出
图形。
展开
 我来答
思孕
2014-09-16 · TA获得超过389个赞
知道小有建树答主
回答量:645
采纳率:0%
帮助的人:418万
展开全部
if all(imag(z([k-1:k+1],[j-1:j+1])))~=0 z1(k,j)=NaN;
首先这个后面应该还有个end 才是完整的if else结构!
语句的整体意袭慎思是拍郑敬:如果 矩阵 z([k-1:k+1],[j-1:j+1] 所有的虚部都不是0 则将NaN赋值给z1(k,j);丛埋
在MATLAB 中NaN就是Not-a-Number ,这个应该懂吧?

all
参考程序:
k=2;
j=2;

z=magic(4);
z(1:3,1:3)=i
if all(imag(z([k-1:k+1],[j-1:j+1])))~=0 z1(k,j)=NaN
end

z=magic(4);
z(1:3,1:2)=i
if all(imag(z([k-1:k+1],[j-1:j+1])))~=0 z1(k,j)=NaN
end
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式