1. 首页 > 智能数码 >

matlab画三维投影图 matlab画三维线图

matlab怎么定义函数?怎么将三维图做侧投影一起画出来?

例如定义函数y=2*x:

matlab画三维投影图 matlab画三维线图matlab画三维投影图 matlab画三维线图


新建M文件,输入

function y=double_x(x)

y=2*x;

保存即可。

后一个问题不明白楼主的期望是什么,提示:用subplot可以在一个窗口中画多个图。

可以plot 两次 加一个hold on

contourf(x1,x2,z);

colorbar('vert')

你说的类似于等高线图吧,相同值用相同颜色表示,第一个命令就是,第二个命令是显示出对应颜色数值,从大到小。。。\(^o^)/~给分。

本视频展示如何用matlab绘制散圆状态图,可用于相关科研数据绘图!

方法如下:

N=? '定义网格分多细,看个人需要

M=? '同上

R=? '球的半径自己填

X=zeros(N+1,M)

X0=zeros(N+1,M)

Y=zeros(N+1,M)

Y0=zeros(N+1,M)

Z=zeros(N+1,M)

Z0=zeros(N+1,M)

for i=0:N

for j=1:M

X(i,j)=R*sin(pi/N*i)*cos(2*pi/M*j)

Y(i,j)=R*sin(pi/N*i)*sin(2*pi/M*j)

Z(i,j)=R*cos(pi/N*i)

end

end

mesh(X,Y,Z)

hold

mesh(X,Y,Z0)

mesh(X,Y0,Z)

mesh(X0,Y,Z)

抱歉,我暂时还没发现MATLAB有什么可以解符号的曲线曲面积分的函数,所以如果还有大神知道怎么解的话请指导。下面我用数值办法解了个近似解。基本思想就是将底面分成很多分,然后取每份中点的高度当做高度的均值,分别计算每份的面积再求和得出总面积。

clear

S =

后来我发现,我将均分数num改大或改小,结果都是6.2832,相差在10^-15,并不会随着等分数的增加而增加精度。所以我画了个图,感觉截面应该就是个正椭圆,所以取中点处的高度当做平均高度不会有误差。甚至当num=1时也是如此(可能比100时还少了些计算误差)

所以这个数值解的精度应该能和解析解旗鼓相当。

有两种方法,一种是你用meshgrid得到的数据,过滤出对应于你希望Z值的xy集合,再用plot画出来,另一种就是,你直接改变Z轴的取值范围,把水平面设定到Z值就相当于投影到了

matlab三维曲线投影上色

t=0:pi/10:8*pi;

y = t.^2;

z=cos(t/2).^2;

x=t;

mesh([x;x],[y;y],[z;z]);

view(2);

colorbar;

用mesh来画三维的曲面,用view指定在二维x-y坐标下观察

由于mesh需要输入的是矩阵,直接复制一行x,y,z

比较简单地实现了你所需要的功能

至于表示z值大小的颜色,可以用colormap命令更改

也可以在画出的figure中菜单项eidt->colormap中更改

t=0:pi/10:8*pi;

y = (t).^(2);

z=(cos(t/2)).^(2);

x=t;

patch([x nan],[y nan],0*[z nan],[z nan],'edgecolor','flat','facecolor','none')

colorbar

Matlab 三维图像投影的平面

那就再画个patch一下就行了嘛

fv1=isosurface(x,y,0*z,D,100);%xy平面,其他平面投影类似

p1=patch(fv1,'FaceColor','red','EdgeColor','black');

hold on;

plot3(x,y,zeros(1,length(x)),'r');

plot3(x,zeros(1,length(x)),z,'c');

plot3(zeros(1,length(x)),y,z,'g');

hold off;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至836084111@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息