输入命令:
x=-5:02:5;
z=-5:02:5;
[X,Z]=meshgrid(x,z);
Y=XX+ZZ;
ii=find(XX+ZZ>4);
Y(ii)=NaN;
surf(X,Y,Z);
hold on
Y1=4X^2;
jj=find(4X^2>4);
Y1(jj)=NaN;
surf(X,Y1,Z);
axis([-5,5,0,2,-5,5]);
xlabel('x轴');
ylabel('y轴');
zlabel('z轴')
即可
以绘制抛物面y=x^2+z^2为例
x=linspace(-5,5);
z=linspace(-5,5);
[X,Z]=meshgrid(x,z); %相当于x,z做了一个笛卡尔积,只不过笛卡尔积(x,z)是一个二元组;而X中每一项取了笛卡尔积的每一项(x,z)的第一个分量,Z中每一项取了笛卡尔积的每一项(x,z)的第二个分量
Y=X^2+Z^2;%相当于X矩阵和Z矩阵做了element-wise的运算得到新的矩阵Y
mesh(X,Y,Z);%相当于X,Y,Z矩阵中的相应元素绘制到三维空间中,遍历之后就得到了“温度图”
不知你是光要画图呢还是要进行计算他们的交线就是位于z=2的平面上半径为2的一个圆,给你花了一个,你看看吧:clear all;clc;zz=@(x,y)(x^2+y^2)/2;ezsurf(zz,[-3,3,-3,3]);hold on;[x0,y0,z0]=sphere(60);r=2sqrt不管你用什么画图命令, 二维的plot也好, 三维的surf 、mesh也好,只要执行hold on命令就可以画在同个figure里面。
clear;clc; close all
a=-2:005:2;
b=-2:005:2;
%给出a,b就确定了一个矩形平面
[x,y]=meshgrid(a,b);
z1=x^2+y^2;
mesh(x,y,z1);%抛物面z=x^2+y^2;
hold on
z2=1-x-y;
mesh(x,y,z2);%平面x+y+z=1
点击“手” 旁边的旋转箭头按钮,可以旋转图像观察
如果你还要显示相交的矩形区域,用下面的代码:
clear;clc; close all
a=-2:005:2;
b=-2:005:2;
%给出a,b就确定了整个矩形区域
[x,y]=meshgrid(a,b);
%抛物面z=x^2+y^2
z1=x^2+y^2;
figure;
mesh(x,y,z1);
hold on
%平面x+y+z=1
z2=1-x-y;
mesh(x,y,z2);
figure;
[m n]=size(z1);
c=1;
for i=1:m
for j=1:n
if(z1(i,j)<z2(i,j))
x3(c)=x(i,j);
y3(c)=y(i,j);
z3(c)=z2(i,j);
c=c+1;
end
end
end
plot3(x3,y3,z3)%显示相交的矩形平面
zlim([-4,8])
grid on
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)