matlab怎样把2维图叠加成3维图
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/19 07:32:45
matlab怎样把2维图叠加成3维图
就是有个方程f(x,y,z)=0 ,直接用solve算不出z=f(x,y)这种结果
然后我想看这个方程的3维图形,把z分别取值,1-100,然后把z值分别带入3元方程里面,就变成一个个的二元方程f(x,y,1)=0,f(x,y,2)=0,f(x,y,3)=0.一直到f(x,y,100)=0
用ezplot分别绘制这些二元方程2维图,比如
ezplot('f(x,y,1)=0',[0,5,0,5])
ezplot('f(x,y,2)=0',[0,5,0,5])
.
ezplot('f(x,y,100)=0',[0,5,0,5])
单独的这些2维方程的图形都可以绘出来
想请教一下有没什么方法可以用matlab自动的算出z分别取值1-100的2维图形,并将这些2维图形叠加成一个3维图形,
就是有个方程f(x,y,z)=0 ,直接用solve算不出z=f(x,y)这种结果
然后我想看这个方程的3维图形,把z分别取值,1-100,然后把z值分别带入3元方程里面,就变成一个个的二元方程f(x,y,1)=0,f(x,y,2)=0,f(x,y,3)=0.一直到f(x,y,100)=0
用ezplot分别绘制这些二元方程2维图,比如
ezplot('f(x,y,1)=0',[0,5,0,5])
ezplot('f(x,y,2)=0',[0,5,0,5])
.
ezplot('f(x,y,100)=0',[0,5,0,5])
单独的这些2维方程的图形都可以绘出来
想请教一下有没什么方法可以用matlab自动的算出z分别取值1-100的2维图形,并将这些2维图形叠加成一个3维图形,
假设方程为 f(x,y,z)=x^2+y^4+z^3+2*y*z-5*sin(z)-4=0 给你提供两种方法:1、按照你的思路,z取不同值,逐个画线:syms x y z
f=x^2+y^4+z^3+2*y*z-5*sin(z)-4;
clf
for ii=-2:.2:2
h=ezplot(subs(f,z,ii),[-3 3]);
set(h,'zData', ii*ones(size(get(h,'xData'))));
hold on
end
title([char(f) ' = 0']);
zlabel('z');
view(40, 25)
axis auto效果图如下:
2、使用isosurface绘制四维图:[x y z] = meshgrid(-3:0.1:3, -3:0.1:3, -2:0.1:2);
v = x.^2+y.^4+z.^3+2*y.*z-5*sin(z)-4;
[faces,verts,colors] = isosurface(x,y,z,v,0,x);
figure;
patch('Vertices', verts, 'Faces', faces, ...
'FaceVertexCData', colors, ...
'FaceColor','interp', ...
'edgecolor', 'interp');
xlabel('x');
ylabel('y');
zlabel('z');
title([char(f) ' = 0']);
view(40,25);效果图如下:![](http://img.wesiedu.com/upload/0/fb/0fb89bab1adde2f1b58c84707111d941.jpg)
f=x^2+y^4+z^3+2*y*z-5*sin(z)-4;
clf
for ii=-2:.2:2
h=ezplot(subs(f,z,ii),[-3 3]);
set(h,'zData', ii*ones(size(get(h,'xData'))));
hold on
end
title([char(f) ' = 0']);
zlabel('z');
view(40, 25)
axis auto效果图如下:
![](http://img.wesiedu.com/upload/9/7f/97fe75bf45a6f7fef10d0aa4943faec8.jpg)
v = x.^2+y.^4+z.^3+2*y.*z-5*sin(z)-4;
[faces,verts,colors] = isosurface(x,y,z,v,0,x);
figure;
patch('Vertices', verts, 'Faces', faces, ...
'FaceVertexCData', colors, ...
'FaceColor','interp', ...
'edgecolor', 'interp');
xlabel('x');
ylabel('y');
zlabel('z');
title([char(f) ' = 0']);
view(40,25);效果图如下:
![](http://img.wesiedu.com/upload/0/fb/0fb89bab1adde2f1b58c84707111d941.jpg)