matlab的图形功能主要包括,6、MATLAB图形功能
MATLAB有很强的图形功能,可以方便地实现数据的视觉化。强大的计算功能与图形功能相结合为MATLAB在科学技术和教学方面的应用提供了更加广阔的天地。下面着重介绍二维图形的画法,对三维图形只作简单叙述。
6.1 二维图形的绘制
6.1.1 基本形式
二维图形的绘制是MATLAB语言图形处理的基础,MATLAB最常用的画二维图形的命令是plot,看两个简单的例子:
>> y=[0 0.58 0.70 0.95 0.83 0.25];
>> plot(y)
生成的图形是以序号 为横坐标、数组y的数值为纵坐标画出的折线。
>> x=linspace(0,2*pi,30); % 生成一组线性等距的数值
>> y=sin(x);
>> plot(x,y)
生成的图形是 上30个点连成的光滑的正弦曲线。
6.1.2 多重线
在同一个画面上可以画许多条曲线,只需多给出几个数组,例如
>> x=0:pi/15:2*pi;
>> y1=sin(x);
>> y2=cos(x);
>> plot(x,y1,x,y2)
则可以画出图5-3。多重线的另一种画法是利用hold命令。在已经画好的图形上,若设置hold on,MATLA将把新的plot命令产生的图形画在原来的图形上。而命令hold off 将结束这个过程。例如:
>> x=linspace(0,2*pi,30); y=sin(x); plot(x,y)
先画好图5-2,然后用下述命令增加cos(x)的图形,也可得到图5-3。
>> hold on
>> z=cos(x); plot(x,z)
>> hold off
6.1.3 线型和颜色
MATLAB对曲线的线型和颜色有许多选择,标注的方法是在每一对数组后加一个字符串参数,说明如下:
线型 线方式: - 实线 :点线 -. 虚点线 - - 波折线。
线型 点方式: . 圆点 +加号 * 星号 x x形 o 小圆
颜色: y黄; r红; g绿; b蓝; w白; k黑; m紫; c青.
以下面的例子说明用法:
>> x=0:pi/15:2*pi;
>> y1=sin(x); y2=cos(x);
>> plot(x,y1,’b:+’,x,y2,’g-.*’)
6.1.4 网格和标记
在一个图形上可以加网格、标题、x轴标记、y轴标记,用下列命令完成这些工作。
>> x=linspace(0,2*pi,30); y=sin(x); z=cos(x);
>> plot(x,y,x,z)
>> grid
>> xlabel(‘Independent Variable X’)
>> ylabel(‘Dependent Variables Y and Z’)
>> title(‘Sine and Cosine Curves’)
也可以在图形的任何位置加上一个字符串,如用:
>> text(2.5,0.7,’sinx’)
表示在坐标x=2.5, y=0.7处加上字符串sinx。更方便的是用鼠标来确定字符串的位置,方法是输入命令:
>> gtext(‘sinx’)
在图形窗口十字线的交点是字符串的位置,用鼠标点一下就可以将字符串放在那里。
6.1.5 坐标系的控制
在缺省情况下MATLAB自动选择图形的横、纵坐标的比例,如果你对这个比例不满意,可以用axis命令控制,常用的有:
axis([xmin xmax ymin ymax]) [ ]中分别给出x轴和y轴的最大值、最小值
axis equal 或 axis(‘equal’) x轴和y轴的单位长度相同
axis square 或 axis(‘square’) 图框呈方形
axis off 或 axis(‘off’) 清除坐标刻度
还有axis auto axis image axis xy axis ij axis normal axis on axis(axis)
用法可参考在线帮助系统。
6.1.6 多幅图形
可以在同一个画面上建立几个坐标系, 用subplot(m,n,p)命令;把一个画面分成m×n个图形区域, p代表当前的区域号,在每个区域中分别画一个图,如
>> x=linspace(0,2*pi,30); y=sin(x); z=cos(x);
>> u=2*sin(x).*cos(x); v=sin(x)./cos(x);
>> subplot(2,2,1),plot(x,y),axis([0 2*pi –1 1]),title(‘sin(x)’)
>> subplot(2,2,2),plot(x,z),axis([0 2*pi –1 1]),title(‘cos(x)’)
>> subplot(2,2,3),plot(x,u),axis([0 2*pi –1 1]),title(‘2sin(x)cos(x)’)
>> subplot(2,2,4),plot(x,v),axis([0 2*pi –20 20]),title(‘sin(x)/cos(x)’)
6.2 三维图形
限于篇幅这里只对几种常用的命令通过例子作简单介绍.
6.2.1 带网格的曲面
例 作曲面z=f(x,y)的图形
用以下程序实现:
>> x=-7.5:0.5;7.5;
>> y=x;
>> [X,Y]=meshgrid(x,y); (3维图形的X,Y数组)
>> R=sqrt(X.^2+Y.^2)+eps; (加eps是防止出现0/0)
>> Z=sin(R)./R;
>> mesh(X,Y,Z) (3维网格表面)
画出的图形如图5-7. mesh命令也可以改为surf, 只是图形效果有所不同,读者可以上机查看结果。
6.2.2 空间曲线
例 作螺旋线 x=sint, y=cost, z=t
用以下程序实现:
>> t=0:pi/50:10*pi;
>> plot3(sin(t),cos(t),t) (空间曲线作图函数, 用法类似于plot)
画出的图形如图5-8
6.2.3 等高线
用contour 或 contour3 画曲面的等高线,如对图5-7的曲面, 在上面的程序后接
contour(X,Y,Z,10) 即可得到10条等高线。
6.2.4 其它
较有用的是给三维图形指定观察点的命令view(azi,ele),azi 是方位角, ele 是仰角.缺省时 azi= ele= .
三维网图的高级处理
1. 消隐处理
例.比较网图消隐前后的图形
z=peaks(50);
subplot(2,1,1);
mesh(z);
title('消隐前的网图')
hidden off
subplot(2,1,2)
mesh(z);
title('消隐后的网图')
hidden on
colormap([0 0 1])
2. 裁剪处理
利用不定数NaN的特点,可以对网图进行裁剪处理
例.图形裁剪处理
P=peaks(30);
subplot(2,1,1);
mesh(P);
title('裁剪前的网图')
subplot(2,1,2);
P(20:23,9:15)=NaN*ones(4,7); %剪孔
meshz(P) %垂帘网线图
title('裁剪后的网图')
colormap([0 0 1]) %蓝色网线
注意裁剪时矩阵的对应关系,即大小一定要相同.
3. 三维旋转体的绘制
为了一些专业用户可以更方便地绘制出三维旋转体,MATLAB专门提供了2个函数:柱面函数cylinder和球面函数sphere
(1) 柱面图
柱面图绘制由函数cylinder实现.
[X,Y,Z]=cylinder(R,N) 此函数以母线向量R生成单位柱面.母线向量R是在单位高度里等分刻度上定义的半径向量.N为旋转圆周上的分格线的条数.可以用surf(X,Y,Z)来表示此柱面.
[X,Y,Z]=cylinder(R)或[X,Y,Z]=cylinder此形式为默认N=20且R=[1 1]
例.柱面函数演示举例
x=0:pi/20:pi*3;
r=5+cos(x);
[a,b,c]=cylinder(r,30);
mesh(a,b,c)
例.旋转柱面图.
r=abs(exp(-0.25*t).*sin(t));
t=0:pi/12:3*pi;
r=abs(exp(-0.25*t).*sin(t));
[X,Y,Z]=cylinder(r,30);
mesh(X,Y,Z)
colormap([1 0 0])
(2).球面图
球面图绘制由函数sphere来实现
[X,Y,Z]=sphere(N) 此函数生成3个(N+1)*(N+1)的矩阵,利用函数 surf(X,Y,Z) 可产生单位球面.
[X,Y,Z]=sphere 此形式使用了默认值N=20.
Sphere(N) 只是绘制了球面图而不返回任何值.
例.绘制地球表面的气温分布示意图.
[a,b,c]=sphere(40);
t=abs(c);
surf(a,b,c,t);
axis('equal') %此两句控制坐标轴的大小相同.
axis('square')
colormap('hot')
6.3
其他各种二维绘图函数
bar 长条图
errorbar 图形加上误差范围
fplot 较精确的函数图形
polar 极座标图
hist 累计图
rose 极座标累计图
stairs 阶梯图
stem 针状图
fill 实心图
feather 羽毛图
compass 罗盘图
quiver 向量场图
以下我们针对每个函数举例。
当资料点数量不多时,长条图是很适合的表示方式:
close all; % 关闭所有的图形视窗
x=1:10;
y=rand(size(x));
bar(x,y);
如果已知资料的误差量,就可用errorbar来表示。下例以单位标准差来做资的误差量:
x = linspace(0,2*pi,30);
y = sin(x);
e = std(y)*ones(size(x));
errorbar(x,y,e)
对於变化剧烈的函数,可用fplot来进行较精确的绘图,会对剧烈变化处进行较密集的取样,如下例:
fplot('sin(1/x)', [0.02 0.2]); % [0.02 0.2]是绘图范围
若要产生极座标图形,可用polar:
theta=linspace(0, 2*pi);
r=cos(4*theta);
polar(theta, r);
对於大量的资料,我们可用hist来显示资料的分 情况和统计特性。下面几个命令可用来验证randn产生的高斯乱数分 :
x=randn(5000, 1); % 产生5000个 m=0,s=1 的高斯乱数
hist(x,20); % 20代表长条的个数
rose和hist很接近,只不过是将资料大小视为角度,资料个数视为距离,并用极座标绘制
表示:
x=randn(1000, 1);
rose(x);
stairs可画出阶梯图:
x=linspace(0,10,50);
y=sin(x).*exp(-x/3);
stairs(x,y);
stems可产生针状图,常被用来绘制数位讯号:
x=linspace(0,10,50);
y=sin(x).*exp(-x/3);
stem(x,y);
stairs将资料点视为多边行顶点,并将此多边行涂上颜色:
x=linspace(0,10,50);
y=sin(x).*exp(-x/3);
fill(x,y,'b'); % 'b'为蓝色
feather将每一个资料点视复数,并以箭号画出:
theta=linspace(0, 2*pi, 20);
z = cos(theta)+i*sin(theta);
feather(z);
compass和feather很接近,只是每个箭号的起点都在圆点:
theta=linspace(0, 2*pi, 20);
z = cos(theta)+i*sin(theta);
compass(z);
6.4图形的输出
在数学建模中,往往需要将产生的图形输出到Word文档中。通常可采用下述方法:
首先,在MATLAB图形窗口中选择【File】菜单中的【Export】选项,将打开图形输出对话框,在该对话框中可以把图形以emf、bmp、jpg、pgm等格式保存。然后,再打开相应的文档,并在该文档中选择【插入】菜单中的【图片】选项插入相应的图片即可。
matlab的图形功能主要包括,6、MATLAB图形功能相关推荐
- matlab 光流法工具箱,MatlabToolBox-PIV Special Effects 图形图像处理 267万源代码下载- www.pudn.com...
文件名称: MatlabToolBox-PIV下载 收藏√ [ 5 4 3 2 1 ] 开发工具: matlab 文件大小: 4944 KB 上传时间: 2016-11-25 下载次数: ...
- matlab 三维立体图,(精)MATLAB三维图形绘制.ppt
4.2 MATLAB的 三维图形绘制 二.绘制三维网格图和曲面图 2. 三维网格图 3. 三维曲面图 三.绘制三维旋转体 四.立体图形与图轴的控制 五.色彩的控制 2.色图的显示和处理 (2) 浓淡处 ...
- matlab图形绘制经典案例,MATLAB经典教程第四章_图形绘制.ppt
<MATLAB经典教程第四章_图形绘制.ppt>由会员分享,可在线阅读,更多相关<MATLAB经典教程第四章_图形绘制.ppt(32页珍藏版)>请在人人文库网上搜索. 1.Ma ...
- 如何使用MATLAB绘制不同类型的二维图形
如何使用MATLAB绘制不同类型的二维图形 听语音 | 浏览:360 | 更新:2014-11-30 18:10 | 标签:matlab 1 2 3 4 5 分步阅读 如何用MATLAB绘制各种二维图 ...
- MATLAB图形的修饰(选择图形窗口、线型点颜色、坐标轴、图形标注、栅格和图形叠加的设置)
在绘制曲线时,MATLAB自动安排曲线的线型.颜色及坐标等属性,有时需要用户对图形的坐标.曲线和注释等进行进一步的修饰,以增加图像的可读性,突出结果的显示. MATLAB提供了一些函数可以对图形进行修 ...
- Matlab绘图基础——利用axes(坐标系图形对象)绘制重叠图像 及 一图多轴(一幅图绘制多个坐标轴)
Matlab绘图基础--利用axes(坐标系图形对象)绘制重叠图像 及 一图多轴(一幅图绘制多个坐标轴) - 司徒鲜生 - 博客园 Matlab中axes函数解析_ljh0302的博客-CSDN博客_ ...
- Matlab:数学之美--绘制分形图形
Matlab:数学之美–绘制分形图形 学习最好的动力是兴趣,所以我们先看看效果: 这一篇与Java学习日记:数学之美-分形图形绘制有共同之处,只是所用的工具不同. clear; %不同的参数有不同的图 ...
- matlab 李萨如_基于MATLAB的李萨如图形研究
内容简介: 基于MATLAB的李萨如图形研究,毕业论文,说明书共20页,5144字,附开题报告.任务书.源程序等. 摘要 质点在相互垂直的分振动频率比成有理数的情况下,合成振动轨迹为稳定的曲线,曲线的 ...
- 如何将matlab中多个m文件的图形,在一个图形上面显示
将matlab中多个m文件的图形在同一个小窗口上显示的前提是坐标系相同,下面就做简单的介绍: 1.新建一个huatu1.m文件,三角函数为例,程序如下: x=0:1:360; y=sind(x); p ...
最新文章
- 2019年2月26日 Unique Email Addresses、To Lower Case、Encode and Decode TinyURL
- hive(3)——使用mapreduce
- krsort_PHP krsort()函数与示例
- hdoj-3342-Legal or Not(拓扑排序)
- 使用 Spring 2.5 注释驱动的 IoC 功能
- 速度申请!2020年度腾讯犀牛鸟精英人才培养计划今日发布
- Jenkins持续集成项目搭建与实践——基于Python Selenium自动化测试(自由风格)
- jquery实现上下左右键盘监听_基于 jQuery 实现键盘事件监听控件
- SpringBoot 接收 单个String入参之解决方案
- Virtual Machine Manager 2012 R2利用服务模板部署SQL
- Base64编码详解及其变种(解决加号在URL变空格问题)
- java 数组减除值_java – 删除数组中空值的最有效方法是什么.
- JavaScript GET 和 POST 请求的区别详解
- PHP网站安全日志系统开发与部署
- vbs的msgbox的恶搞文件
- 微信开发者工具稳定版本的使用经验分享
- 三星note5 android9,史上最快!三星公布新版安卓9.0升级名单:Note FE在内
- Java如何读取和操作上G文本数据
- Unity——责任链模式(土味情话传递)
- 设计Weekday类
热门文章
- gradle mysql方言_2020 年 4月 随笔档案 - xj_aks - 博客园
- 按键精灵刷阿里妈妈广告联盟源码 后台运行 并显示点击次数 亲测有效
- 大公司内部的标准开发文档模板下载
- 【论文】——Once-for-All: Train One Network and Specialize it for Efficient Deployment阅读
- HDD/SSD基础知识及工作原理
- 逆向破解思路和获取app的代码,脱壳操作(四)
- win10磁盘100官方解释_Win10系统下磁盘占用100%常用处理方法
- 在计算机领域中不常用到的数值是,第一章计算机应用基础..doc
- 中央单位高级职称评审委员会备案目录
- 高压电源模块5V/12V/24V升90V/200V/450V/900V升压电路