matlab三维图程序:[X,Y]=meshgrid([200:2:300],[-pi/4:pi/100:pi/4]);M=-pi/4:pi/100:pi/4;f=sqrt(1-((1600+(X.*cos(M+pi/4)-0.707*X+40*sin(Y)).^2+(X.*sin(M+pi/4)-0.707*X-40*cos(Y)).^2-(0.707*X-40*sin(Y)).^2-(0.70
网友回答
简单说明两点:
1、表达式中涉及到三个变量:X、Y和M,似乎没有太好的方法避免使用循环(即使有,可能也会把程序搞得更难理解),所以程序改用循环结构.
2、按照你给的表达式计算,结果Z会出现复数(我直接使用你的f表达式,没有仔细检查有没有问题,请你再自己核实一下),所以绘图分别绘制实部和虚部.
matlab三维图程序:[X,Y]=meshgrid([200:2:300],[-pi/4:pi/100:pi/4]);M=-pi/4:pi/100:pi/4;f=sqrt(1-((1600+(X.*cos(M+pi/4)-0.707*X+40*sin(Y)).^2+(X.*sin(M+pi/4)-0.707*X-40*cos(Y)).^2-(0.707*X-40*sin(Y)).^2-(0.70(图2)代码如下:[X,Y] = meshgrid([200:2:300],[-pi/4:pi/100:pi/4]);
M=-pi/4:pi/100:pi/4;
for i = 1 : size(X,1)
for j = 1 : size(X,2)
x = X(i, j);
y = Y(i, j);
f = sqrt(1-((1600+(x.*cos(M+pi/4)-0.707*x+40*sin(y)).^2+...
(x.*sin(M+pi/4)-0.707*x-40*cos(y)).^2-(0.707*x-...
40*sin(y)).^2-(0.707*x+40*cos(y)).^2)./(80*x)).^2);