MATLAB总结 - 三维图形、等高线
更新时间:2023-03-28 23:48:01 阅读量: 互联网资料 文档下载
- matlab总结报告推荐度:
- 相关推荐
个人总结的一些使用的方法
I. 三维曲线 plot3
plot3函数与plot函数用法十分相似,其调用格式为:
plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n)
其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot函数相同。当x,y,z是同维向量时,则x,y,z 对应元素构成一条三维曲线。当x,y,z是同维矩阵时,则以x,y,z对应列元素绘制三维曲线,曲线条数等于矩阵列数。
绘制三维曲线,程序如下:
t=0:pi/100:20*pi;
x=sin(t);
y=cos(t);
z=t.*sin(t).*cos(t);
plot3(x,y,z);
title('Line in 3-D Space');
xlabel('X');ylabel('Y');zlabel('Z');
grid on;
II. 三维曲面 surf (meshgrid, caxis), surfc, mesh, meshc, meshz, sphere, cylinder, peaks
1. 产生三维数据
在MATLAB中,利用meshgrid函数产生平面区域内的网格坐标矩阵。其格式为:
x=a:d1:b; y=c:d2:d;
[X,Y]=meshgrid(x,y);
语句执行后,矩阵X的每一行都是向量x,行数等于向量y的元素的个数,矩阵Y的每一列都是向量y,列数等于向量x的元素的个数。
2. 绘制三维曲面的函数
surf函数和mesh函数的调用格式为:
surf(x,y,z,c); mesh(x,y,z,c)
一般情况下,x,y,z是维数相同的矩阵。x,y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不同高度下的颜色范围。
此外,还有带等高线的三维网格曲面函数meshc和带底座的三维网格曲面函数meshz。其用法与mesh类似,不同的是meshc还在xy平面上绘制曲面在z轴方向的等高线,meshz还在xy平面上绘制曲面的底座。
surf程序如下:
xx=1;
for ii=1:0.1:10
yy=1;
for jj=1:0.1:20
f1(xx,yy)=ii; f2(xx,yy)=jj; ff(xx,yy)=function(ii,jj);
yy=yy+1;
end
xx=xx+1;
end
surf(f1,f2,ff);
或者:
ii=-10:0.1:10; jj=-10:0.1:10;
[II,JJ]=meshgrid(ii,jj);
ff=-(II.^2+JJ.^2);
surf(II,JJ,ff); shading interp
1
个人总结的一些使用的方法
surfc:
mesh程序如下:
ii=-10:0.1:10; jj=-10:0.1:10; [II,JJ]=meshgrid(ii,jj);
ff=-(II.^2+JJ.^2);
surf(II,JJ,ff);
meshc: meshz:
注:shading interp可用于去除网格;caxis([])可用于调节颜色的最大值和最小值
3. 标准三维曲面
sphere函数的调用格式为:[x,y,z]=sphere(n)
cylinder函数的调用格式为:[x,y,z]= cylinder(R,n)
2
个人总结的一些使用的方法
MATLAB还有一个peaks 函数,称为多峰函数,常用于三维曲面的演示。
peaks程序如下:
t=0:pi/20:2*pi;
[x,y,z]= cylinder(2+sin(t),30);
subplot(2,2,1);
surf(x,y,z);
subplot(2,2,2);
[x,y,z]=sphere;
surf(x,y,z);
subplot(2,1,2);
[x,y,z]=peaks(30);
surf(x,y,z);
III. 其他三维图形 bar3, stem3, pie3 , fill3
在介绍二维图形时,曾提到条形图、杆图、饼图和填充图等特殊图形,它们还可以以三维形式出现,使用的函数分别是 bar3、stem3、pie3 和fill3。
bar3函数绘制三维条形图,常用格式为:bar3(y); bar3(x,y)
stem3函数绘制离散序列数据的三维杆图,常用格式为:stem3(z); stem3(x,y,z)
pie3函数绘制三维饼图,常用格式为:pie3(x)
fill3函数等效于三维函数fill,可在三维空间内绘制出填充过的多边形,常用格式为:fill3(x,y,z,c)
contour3 函数绘制三维等高线
contour3(x,y,z,n)…..绘制n条等高线图
contour3(x,y,z,v)……在v值上标识
c=contourc3(x,y,z,n)…..x-y数据
clabel(c)…….加注高度标识
IV. 等高线、二维彩图 contour, clabel, contourc, contour3, contour, pcolor, surface
1. 等高线1 contour
功能 曲面的等高线图
用法 contour(z) 把矩阵z中的值作为一个二维函数的值,等高曲线是一个平面的曲线,平面的高度v是Matlab自动取的;
contour(x,y,z) (x,y)是平面z=0上点的坐标矩阵,z为相应点的高度值矩阵。效果同上;
contour(z,n) 画出n条等高线;
contour(x,y,z,n) 画出n条等高线;
contour(z,v) 在指定的高度v上画出等高线;
contour(x,y,z,v) 同上;
[c,h] = contour(…) 返回如同contourc命令描述的等高矩阵c和线句柄或块句柄列向量h,这些可作为clabel命令的输入参量,每条线对应一个句柄,句柄中的userdata属性包含每条等高线的高度值;
contour(…,’linespec’) 因为等高线是以当前的色图中的颜色画的,且是作为块对象处理的,即等高线是一般的线条,我们可象画普通线条一样,可以指定等高线的颜色或者线形。
contour程序如下:contour(peaks(40))
3
个人总结的一些使用的方法
2. 等高线2 clabel
功能 在二维等高线图中添加高度标签。在下列形式中,若有h出现,则会对标签进行恰当的旋转,否则标签会竖直放置,且在恰当的位置显示个一个“+”号。
用法 clabel(C,h) 把标签旋转到恰当的角度,再插入到等高线中。只有等高线之间有足够的空间时才加入,当然这决定于等高线的尺度。
clabel(C,h,v) 在指定的高度v上显示标签h,当然要对标签做恰当的处理。
clabel(C,h,'manual') 手动设置标签。用户用鼠标左键或空格键在最接近指定的位置上放置标签,用键盘上的回车键结束该操作。当然会对标签做恰当的处理。
clabel(C) 在从命令contour生成的等高线结构c的位置上添加标签。此时标签的放置的位置是随机的。 clabel(C,v) 在给定的位置v上显示标签
clabel(C,'manual') 允许用户通过鼠标来给等高线贴标签
>>[x,y] = meshgrid(-2:.2:2);
>>z = x.*y.*exp(-x.^2-y.^2);
>>[C,h] = contour(x,y,z);
>>clabel(C,h);
3. 等高线3 contourc
功能 低级等高线图形计算命令。该命令计算等高线矩阵c,该矩阵可用于命令contour,contour3和contourf等。矩阵z中的数值确定平面上的等高线高度值,等高线的计算结果用由矩阵z维数决定的间隔的宽度。
用法 C = contourc(Z) 从矩阵z中计算等高矩阵,其中z的维数至少为2*2阶,等高线为矩阵z中数值相等的单元。等高线的数目和相应的高度值是自动选择的。
C = contourc(Z,n) 在矩阵z中计算出n个高度的等高线。
C = contourc(Z,v) 在矩阵z中计算出给定高度向量v上计算等高线,当然向量v的维数决定了等高线的数目。若只要计算一条高度为a的等高线,输入:contourc(Z,[a,a]);
C = contourc(x,y,Z) 在矩阵z中,参量x,y确定的坐标轴范围内计算等高线;
C = contourc(x,y,Z,n) 从矩阵Z中,参量x与y确定的坐标范围内画出n条等高线;
C = contourc(x,y,Z,v) 从矩阵Z中,参量x与y确定的坐标范围内,画在v指定的高度上指定的等高线。
4. 等高线4 contour3
功能 三维空间等高线图。该命令生成一个定义在矩形格栅上曲面的三维等高线图。
用法 contour3(Z) 画出三维空间角度观看矩阵z的等高线图,其中z的元素被认为是距离xy平面的高度,矩阵z至少为2*2阶的。等高线的条数与高度是自动选择的。若[m,n]=size(z),则x轴的范围为[1:n],y轴的范围为[1:m]。
contour3(Z,n) 画出由矩阵z确定的n条等高线的三维图。
contour3(Z,v) 在参量v指定的高度上画出三维等高线,当然等高线条数与向量v 的维数相同;若想只画一条高度为h的等高线,输入:contour3(Z,[h,h])
4
个人总结的一些使用的方法
contour3(X,Y,Z)、contour3(X,Y,Z,n)、contour3(X,Y,Z,v) 用X与Y定义x-轴与y-轴的范围。若X为矩阵,则X(1,:)定义x-轴的范围;若Y为矩阵,则Y(:,1)定义y-轴的范围;若X与Y同时为矩阵,则它们必须同型。不论为哪种使用形式,所起的作用与命令surf相同。若X或Y有不规则的间距,contour3还是使用规则的间距计算等高线,然后将数据转变给X或Y。
contour3(…,LineSpec) 用参量LineSpec指定的线型与颜色画等高线。
[C,h] = contour3(…) 画出图形,同时返回与命令contourc中相同的等高线矩阵C,包含所有图形对象的句柄向量h;除非没有指定LineSpec参数,contour3将生成patch图形对象,且当前的colormap属性与caxis属性将控制颜色的显示。不论使用何种形式,该命令都生成line图形对象。
>>[X,Y] = meshgrid([-2:.25:2]);
>>Z = X.*exp(-X.^2-Y.^2);
>>contour3(X,Y,Z,30)
5. 等高线5 contourf
功能 填充二维等高线图。即先画出不同等高线,然后相邻的等高线之间用同一颜色进行填充。填充用的颜色决定于当前的色图颜色。
用法 contourf(Z) 矩阵z的等高线图,其中z理解成距平面的高度。Z至少为2*2阶的。等高线的条数与高度是自动选择的。
contourf(Z,n) 画出矩阵z的n条高度不同的等高线。
contourf(Z,v) 画出矩阵z的、由v指定的高度的等高线图。
contourf(X,Y,Z)、contourf(X,Y,Z,n)、contourf(X,Y,Z,v) 画出矩阵z的等高线图,其中X与Y用于指定x-轴与y-轴的范围。若X与Y为矩阵,则必须与Z同型。若X或Y有不规则的间距,contour3还是使用规则的间距计算等高线,然后将数据转变给X或Y。
[C,h,CF] = contourf(…)画出图形,同时返回与命令contourc中相同的等高线矩阵C,C也可被命令clabel使用;返回包含patch图形对象的句柄向量h;返回一用于填充用的矩阵CF。
>>contourf(peaks(30),20);
>>colormap gray
6. 二维彩图1 pcolor
ii=-10:0.1:10; jj=-10:0.1:10;
[II,JJ]=meshgrid(ii,jj);
ff=-(II.^2+JJ.^2);
pcolor(II,JJ,ff); shading interp
5
个人总结的一些使用的方法
7. 二维彩图2 surface
ii=-10:0.1:10; jj=-10:0.1:10;
[II,JJ]=meshgrid(ii,jj);
ff=-(II.^2+JJ.^2);
surface(II,JJ,ff); shading interp
V. 流线图、箭头梯度图 streamslice, quiver
1. 流线图 streamslice
Matlab算例1:
ii=-10:0.1:10; jj=-10:0.1:10;
[II,JJ]=meshgrid(ii,jj);
ff=-(II.^2+JJ.^2);
[gx,gy]=gradient(ff);
streamslice(II,JJ,gx,gy)
Matlab算例2:
点偶极子的电场分布,源程序如下:
q=1; d=2; e0=8.854187817*10.^-12;
x=-3:0.1:3; y=-3:0.1:3; [x,y]=meshgrid(x,y);
6
个人总结的一些使用的方法
z=q.*(1./sqrt((y-1).^2+x.^2+0.01)-1./sqrt((y+1).^2+x.^2+0.01))./(4*pi*e0);
contour(x,y,z); hold on
[px,py]=gradient(z); streamslice(x,y,px,py,'k')
2. 箭头梯度图 quiver
Matlab算例1:
ii=-10:2:10; jj=-10:2:10;
[II,JJ]=meshgrid(ii,jj);
ff=-(II.^2+JJ.^2);
[gx,gy]=gradient(ff);
quiver(II,JJ,gx,gy)
Matlab算例2:
原文地址:
文件下载:
clear all; clc;
e = 2; g = 1;
[x,y] = meshgrid(0:20,0:15); % This makes regulargrid
u =e*x-g*y; % Linear velocity field
v = g*x-e*y;
[phi,psi] = flowfun(u,v); % Here comes thepotential and streamfun.
contour(phi,20,'--r','Displayname','phi') % Contours of potential
hold on
contour(psi,20,'-g','Displayname','psi') % Contours of streamfunction
quiver(x,y,u,v,'Displayname','velocity') % Now superimpose the velocity field
legend show;
7
个人总结的一些使用的方法
8
正在阅读:
MATLAB总结 - 三维图形、等高线03-28
2017年绵阳市直属学校(单位)继续教育公需科目课程考试答案10-05
3~6岁幼儿心理学12-26
南京师范大学总校车时刻表 - 图文05-24
2012年自贡市初中毕业生学业06-26
机场代码表_2014_09_24_09_12_0804-12
食品学院第五届秋季运动会秩序册10-07
公司前台工作总结2022年04-04
第6章 C语言程序设计与混合编程05-13
- 2009年【中考数学压轴题汇编(含解题过程)】(十)
- PEST、波特五力分析
- 教你们怎么从菜鸟级别到电脑高手
- 飞思卡尔智能车竞赛新手入门建议
- 水利工程对环境的影响及对策分析
- 自我评价中的最经典的十个“自我”
- 一种体现科学发展观的新领导力_李锡炎
- 影响中国物业管理未来命运的因素
- 红领巾心向党教案
- 关于做手抄报的作文欣赏 三年级
- 插入式涡街流量计使用说明书
- 17章 反比例函数教案全章
- 山西省忻州市河曲县事业编考试职业能力测试每日一练带答案解析(2
- 青岛李村河污水处理厂二期工程的设计与运行
- 中级维修电工计算题
- 化学工业出版社重点书推荐
- VMware5.0版本区别及功能介绍
- 国内人员个人所得税申报表(空白)
- 行政助理工作手册
- 雅思口语第三阶段问题与答案(1)
- 等高线
- 三维
- 图形
- 总结
- MATLAB
- Unit 4 Section B人教版英语七年级下册习题
- 弘扬中华民族“尚武精神”
- 《新媒体营销概论》期末试卷1(含答案)
- 浅析庄子的美学思想
- 《品质》教学反思07
- 主持暖场、会议、宴会可用的游戏
- 不同形状名茶制茶工艺对茶叶品质的影响
- 2015年咨询工程师继续教育项目建议书可行性研究初步设计三阶段报
- 保险销售拒绝话术处理
- window7三步开WIFI路由
- Genesis全套教程之锣带制作
- 生产安全事故典型案例汇编(2014年)
- (最新)学校节约用电管理制度
- 航空航天基本知识
- 10套经典动态的PPT模版-7
- 大力弘扬求真务实精神
- 有限空间作业审批表填写示例
- 【魔鬼定律全集】5 中国股市十大魔鬼定律
- Unit 23 Conflicts Writing_ A Letter of Complaint学案
- 性格解析与国学商道