matlab surf画三维图的问题n=4;c=3e8;f=30e6;lamda=c/f;beta=2*pi/lamda;d=0.5*lamda;alpha=0;a=linspace(0,2*pi);b=linspace(0,pi);psi=beta*d*cos(a)+alpha;Fa=abs(sin(n*psi/2)./(n*sin(psi/2)));z=Fa.*cos(a);x=(Fa.*sin(a)).*cos(b);y=(Fa.*sin(a)).*sin(
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/20 03:06:03
![matlab surf画三维图的问题n=4;c=3e8;f=30e6;lamda=c/f;beta=2*pi/lamda;d=0.5*lamda;alpha=0;a=linspace(0,2*pi);b=linspace(0,pi);psi=beta*d*cos(a)+alpha;Fa=abs(sin(n*psi/2)./(n*sin(psi/2)));z=Fa.*cos(a);x=(Fa.*sin(a)).*cos(b);y=(Fa.*sin(a)).*sin(](/uploads/image/z/2686312-64-2.jpg?t=matlab+surf%E7%94%BB%E4%B8%89%E7%BB%B4%E5%9B%BE%E7%9A%84%E9%97%AE%E9%A2%98n%3D4%3Bc%3D3e8%3Bf%3D30e6%3Blamda%3Dc%2Ff%3Bbeta%3D2%2Api%2Flamda%3Bd%3D0.5%2Alamda%3Balpha%3D0%3Ba%3Dlinspace%280%2C2%2Api%29%3Bb%3Dlinspace%280%2Cpi%29%3Bpsi%3Dbeta%2Ad%2Acos%28a%29%2Balpha%3BFa%3Dabs%28sin%28n%2Apsi%2F2%29.%2F%28n%2Asin%28psi%2F2%29%29%29%3Bz%3DFa.%2Acos%28a%29%EF%BC%9Bx%3D%28Fa.%2Asin%28a%29%29.%2Acos%28b%29%3By%3D%28Fa.%2Asin%28a%29%29.%2Asin%28)
matlab surf画三维图的问题n=4;c=3e8;f=30e6;lamda=c/f;beta=2*pi/lamda;d=0.5*lamda;alpha=0;a=linspace(0,2*pi);b=linspace(0,pi);psi=beta*d*cos(a)+alpha;Fa=abs(sin(n*psi/2)./(n*sin(psi/2)));z=Fa.*cos(a);x=(Fa.*sin(a)).*cos(b);y=(Fa.*sin(a)).*sin(
matlab surf画三维图的问题
n=4;
c=3e8;
f=30e6;
lamda=c/f;
beta=2*pi/lamda;
d=0.5*lamda;
alpha=0;
a=linspace(0,2*pi);
b=linspace(0,pi);
psi=beta*d*cos(a)+alpha;
Fa=abs(sin(n*psi/2)./(n*sin(psi/2)));
z=Fa.*cos(a);
x=(Fa.*sin(a)).*cos(b);
y=(Fa.*sin(a)).*sin(b);
surf(x,y,z)
axis equal
错误代码是这个,正确的是
z=(Fa.*cos(a))'*ones(size(b));
x=(Fa.*sin(a))'*cos(b);
y=(Fa.*sin(a))'*sin(b);
surf(x,y,z)
求高手解释下这两段代码的区别
matlab surf画三维图的问题n=4;c=3e8;f=30e6;lamda=c/f;beta=2*pi/lamda;d=0.5*lamda;alpha=0;a=linspace(0,2*pi);b=linspace(0,pi);psi=beta*d*cos(a)+alpha;Fa=abs(sin(n*psi/2)./(n*sin(psi/2)));z=Fa.*cos(a);x=(Fa.*sin(a)).*cos(b);y=(Fa.*sin(a)).*sin(
z=Fa.*cos(a);
x=(Fa.*sin(a)).*cos(b);
y=(Fa.*sin(a)).*sin(b);%%错误代码中z,x,y的大小为1*100
surf要z是方阵,不能是1列或者1行.当X 和 Y 一维向量时, length(X) = n 和 length(Y) = m, 那么 [m,n] = size(Z),这是surf的要求,对应位置的值为(X(j), Y(i), Z(i,j));当X和Y是矩阵时,同样的要求,且对应位置的值为(X(i,j), Y(i,j), Z(i,j)).
那么当i=50,j=50时,z(50,50)是没有值的,所以出错.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
z=(Fa.*cos(a))'*ones(size(b));
x=(Fa.*sin(a))'*cos(b);
y=(Fa.*sin(a))'*sin(b);
surf(x,y,z)
该代码中z,x,y的大小都为100*100,那么矩阵元素位置一一对应,画图正确.