matlab如何画出如下所示的三维立体图形计算器汉化版?

Matlab画三维图笔记
plot3 基本的三维曲线图绘制
plot3(x,y,z),x,y,z均为相同长度的向量,会得到三个向量相同下标构成的的三维坐标(xi,yi,zi)(i=1~n)连的曲线plot3(X,Y,Z),X,Y,Z均为相同大小的矩阵,均为m*n的矩阵时,plot3命令将绘得m条曲线,每条曲线均为X,Y,Z列向量为(x,y,z)坐标值的曲线
例 三维圆柱形螺旋线,x,y,z均为相同长度的向量
t = 0:pi/50:10*
plot3(sin(t),cos(t),t);
例 2条三维曲线,第一条是圆柱形螺旋线,第二条是圆锥形螺旋线,X,Y,Z均为501*2的向量
t = 0:pi/50:10*
X=[cos(t);t.*cos(t)/50]'; %[cos(t);t.*cos(t)/50]矩阵为两行,取转置之后变为两列
Y=[sin(t);t.*sin(t)/50]';
plot3(X,Y,Z);
line 绘制直线
line(X,Y) 如果X,Y均为n维向量,则会以X作为x轴坐标,Y轴作为y轴坐标,构成n个点,画出一条折线图(n-1条直线构成)
line(X,Y) 如果X,Y均为相同大小的m*n矩阵,则会把X的第i列和Y的第i列看成X轴和Y轴,画出一条折线图,一共N条折线图
line(X,Y,Z) X,Y可以同时是n维向量,也可以同时是m*n矩阵,作用和二维的一样
例 从(1,4)到(5,5)画一条直线,然后从(5,5)到(3,6)画一条直线
line([1,5,3],[4,5,6]);
例 画正五边形
X(1)=0;Y(1)=10;%定义初始坐标
edge=5; %定义边数
angle=2*pi/ %定义旋转角度
for i=1:edge
X(i+1)=cos(angle)*X(i)-sin(angle)*Y(i);
Y(i+1)=cos(angle)*Y(i)+sin(angle)*X(i);
line(X,Y);
例 画五角星
X(1)=0;Y(1)=10;%定义初始坐标
edge=5; %定义边数
angle=4*pi/ %定义旋转角度
for i=1:edge
X(i+1)=cos(angle)*X(i)-sin(angle)*Y(i);
Y(i+1)=cos(angle)*Y(i)+sin(angle)*X(i);
line(X,Y);
例 画正六边形和正八边形
%%计算正六边形坐标
X1(1)=0;Y1(1)=10;%定义初始坐标
edge=6; %定义边数
angle=2*pi/ %定义旋转角度
for i=1:edge+2 %为了保证维数相同多定义两个点
X1(i+1)=cos(angle)*X1(i)-sin(angle)*Y1(i);
Y1(i+1)=cos(angle)*Y1(i)+sin(angle)*X1(i);
%%计算正八边形坐标
X2(1)=0;Y2(1)=12;%定义初始坐标
edge=8; %定义边数
angle=2*pi/ %定义旋转角度
for i=1:edge
X2(i+1)=cos(angle)*X2(i)-sin(angle)*Y2(i);
Y2(i+1)=cos(angle)*Y2(i)+sin(angle)*X2(i);
line([X1;X2]',[Y1;Y2]');
例 画三维直线 XYZ均为向量
line([1,2],[4,5],[5,7]);
view(45,45); %由于line画出的图默认显示的是xoy面的投影,这里通过view进行三维选择(Rotate 3D)
line([1,2,3],[4,5,9],[5,7,7]);
例 画三维直线 XYZ均为矩阵
line([8 0 7;10 8 8;7 9 7],[4 7 0;7 0 1;2 3 8],[14 1 15;6 9 6;19 8 4]);
view(45,45);
view 控制视角
view(AZ,EL) AZ为视角点与原点连线投影到xoy面与y轴负向所称夹角,EL为视角点与原点连线与xoy面的投影所成夹角
view([X Y Z]) 设置坐标点XYZ为视角点
view(2) 使用默认的 2-D 视角, AZ = 0, EL = 90.
view(3) 使用默认的 3-D 视角, AZ = -37.5, EL = 30.
mesh 普通三维网格曲面,网格图,在行和列上绘制一系列曲线,构成网格
mesh*和surf*一般情况下需要配合meshgrid使用
例 使用普通三维网格曲面绘制抛物面
x=-10:0.1:10;
y=-10:0.1:10;
[X,Y]=meshgrid(x,y);
Z=X.^2+Y.^2;
mesh(X,Y,Z);
meshc 带等高线的三维网格曲面,在mesh基础上,在底部绘制轮廓图
例 使用带等高线的三维网格曲面绘制锥面
meshz 带底座的三维网格曲面,在mesh基础上,在网格四周绘制“帘子”
例 使用带底座的三维网格曲面绘制双峰函数
[X,Y] = meshgrid(-3:.125:3);
Z = peaks(X,Y);
meshz(X,Y,Z)
waterfall 瀑布图,类似于meshz函数,但在矩阵的列之间不生成线
x=-10:0.5:10;
y=-8:0.5:8;
[X,Y]=meshgrid(x,y);
Z=sin(sqrt(X.^2+Y.^2))./sqrt(X.^2+Y.^2);
waterfall(X,Y,Z);
surf 曲面,和mesh的区别是,surf在小矩形上做颜色插值
%参数方程的抛物面
u=0:0.1:10;
t=0:pi/50:2*
[U,T]=meshgrid(u,t);
X=U.*cos(T);
Y=U.*sin(T);
surf(X,Y,Z);
surfc在surf基础上,在底部绘制轮廓图
%参数方程的锥面
u=0:0.1:10;
t=0:pi/50:2*
[U,T]=meshgrid(u,t);
X=U.*cos(T);
Y=U.*sin(T);
surfc(X,Y,Z);
surfl 在surf基础上,加入光照
[x,y] = meshgrid(-3:1/8:3);
z = peaks(x,y);
surfl(x,y,z);
shading interp %进行色彩的插值处理,使色彩平滑过渡
colormap(gray);
%将彩色图像映射为灰度图像
axis([-3,3,-3,3,-8,8]) %设置坐标范围
shading 是用来处理色彩效果的,分以下三种:
no shading 一般的默认模式 即shading faceted
shading flat 在faceted的基础上去掉图上的网格线
shading interp 在flat的基础上进行色彩的插值处理,使色彩平滑过渡
subplot(1,3,1)
sphere(16)
axis square
shading flat
title('Flat Shading')
subplot(1,3,2)
sphere(16)
axis square
shading faceted
title('Faceted Shading')
subplot(1,3,3)
sphere(16)
axis square
shading interp
title('Interpolated Shading')
ezplot直接绘图
ezplot(FUN) 直接使用函数表达式绘图,函数表达式也可以自定义的函数名
ezplot('x.*y + x.^2 - y.^2 - 1');
例 使用@指定坐标轴
subplot(1,2,1), ezplot('1./z - log(z) + log(-1+z) + t - 1')
%为了避免歧义,建议用下面的方式
subplot(1,2,2), ezplot(@(z,t)1./z - log(z) + log(-1+z) + t - 1)
ezplot3(FUNX,FUNY,FUNZ) 使用参数方程x=x(t),y=y(t),z=z(t)画三维图
ezplot3('cos(t)','t.*sin(t)','sqrt(t)')
ezcontour(FUN) 画等高线
ezcontour('x*exp(-x^2 - y^2)')
此外,还有一系列ez*函数,如ezpolar, ezcontourf, ezsurf, ezmesh, ezsurfc, ezmeshc,有兴趣的自己查帮助文档
matlab三维作图教程
matlab 使用三个矩阵画三维图像
Matlab绘制三维曲线(plot3)和三维图形(mesh & surf)
matlab中三维图形绘制函数
Matlab 应用之绘制三维图形(基础篇)
使用Matlab绘制三维图的几种方法
MATLAB 三维图形绘制
【Matlab】离散点绘制三维曲面方法小结
Matlab 绘制三维立体图(以地质异常体为例)
MATLAB绘制三维曲面图和等高线 绘图(2)
没有更多推荐了,用matlab实现以下的问题:已知一个具体的平面方程,如何画出三维点的图形_百度知道
用matlab实现以下的问题:已知一个具体的平面方程,如何画出三维点的图形
点云平面方程x+2y+4z.在[-5,5]之间随机选取x和y的值,得到z。一共得到100个点,然后在这100个点里面加入20-30个异常点,就是误差比较大的点,然后将这些点通过matlab画出具体的三维点...
点云平面方程x+2y+4z.在[-5,5]之间随机选取x和y的值,得到z。一共得到100个点,然后在这100个点里面加入20-30个异常点,就是误差比较大的点,然后将这些点通过matlab画出具体的三维点图,要求有具体源代码,和实验结果图(三维点图),急求,如果好的话,还可以追加悬赏,高手帮助!!现在悬赏分是85 对于完全解决我问题的高手,分数还会更高,分数不是问题,只要可以解决我的问题,就可以。。。
chinasunsunsun知道合伙人
chinasunsunsun
采纳数:3722
获赞数:14588
C=0;% rand(1,125)表示1*125的向量,每个元素是[0,1]% rand(1,125)-.5表示1*125的向量,每个元素是[-0.5,0.5]% 10*(rand(1,125)-.5)表示1*125的向量,每个元素是[-5,5]x=10*(rand(1,125)-.5);% y 同理y=10*(rand(1,125)-.5);% z=(C-x-2*y)/4z=(C-x-2*y)/4
% x+2y+4z=C% 假设你希望误差大概在50%% 即我把最后的101到125个元素表示为原值的误差% .5+rand(1,25)表示[.5,1.5]% 最后25个元素就是准确值的50%到150%z(101:125)=z(101:125).*(.5+rand(1,25));% 利用plot3进行画图plot3(x,y,z,'.')
我发现用上面的做过之后,效果不是很好,异常点表现的不是很明显,于是我按照自己理解的意思进行了简单的参数修改,如下,有一个问题就是我上面写的平面方程式x+2y+4z 当时写掉了,应该是x+2y+4z =1,可是我一旦把里面的参数由C换成1之后,就发现所有的点都位于一个平面,基本上就没有太大的差异了,这是怎么回事呢我修改后的代码:还有修改后得到的图如下(由于追问有字数限制,我只能把东西放在上面的修改提问)
为你推荐:
其他类似问题
您可能关注的内容
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。【图文】Matlab实训5-三维图形的绘制_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&10W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Matlab实训5-三维图形的绘制
阅读已结束,下载本文到电脑
定制HR最喜欢的简历
你可能喜欢如何在matlab中绘制三维立体图?_百度知道
如何在matlab中绘制三维立体图?
杨好巨蟹座知道合伙人
杨好巨蟹座
采纳数:3371
获赞数:33366
程序如下:1 x=0:pi/10:2* 2 y=2*sin(x); 3 subplot(2,2,1);bar(x,y,'g'); %subplot最后一个1表示正在绘制第一个图像 4 title('bar(x,y,''g'')');axis([0,7,-2,2]); 5 subplot(2,2,2);stairs(x,y,'b'); 6 title('stairs(x,y,''b'')');axis([0,7,-2,2]); 7 subplot(2,2,3);stem(x,y,'k'); 8 title('stem(x,y,''k'')');axis([0,7,-2,2]); 9 subplot(2,2,4);fill(x,y,'y');10 title('fill(x,y,''y'')');axis([0,7,-2,2]);
为你推荐:
其他类似问题
您可能关注的内容
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 matlab关闭图形窗口 的文章

 

随机推荐