MATLAB学习笔记(四)
来源:互联网 发布:js input 隐藏光标 编辑:程序博客网 时间:2024/05/20 20:22
学习MATLAB的绘图功能
具体内容有:
1.绘制二维图形,并对二维图形进行标注
2.调整图形
3.子图窗口的划分
4.绘制三维图形
5.使用交互绘图工具
1.二维图形
1)基本图形的绘制
>> x = [0:2:18];>> y = [0,0.33,4.13,6.29,6.85,11.19,13.19,13.96,16.33,18.17];>>plot(x,y),title('实验1'),xlabel('时间'),ylabel('距离'),grid
以上代码可以在一行上使用一起执行也可以分开执行,当使用逗号间隔时表示要一起执行,各函数分别表示: title(标题),xlabel(时间),ylabel(距离),grid(添加栅格)
代码执行的效果如下图:
2)创建多个图形
MATLAB可以随时生成和显示图形窗口,但生成的第二幅图形会覆盖掉第一幅图形。解决方法有两个:一是用pause命令暂停程序,二是用figure创建新的图形。
>> figure(2)
可以创建一个新的空白绘图窗口,如果不指定括号中的编号,则MATLAB会自动产生图形编号
基本绘图功能函数总结如下:
3)绘制多条曲线
hold on
方法可以用于绘制多条曲线,用于保持图形
>> x = 0:pi/100:2*pi;>> y1 = cos(x*4);>> plot(x,y1)>> y2 = sin(x);>> hold on;>> plot(x,y2)
绘制图像后结果如下:
另一种方法可以使用
>> plot(x,y1,x,y2)
也可以绘制两条曲线
颜色问题:MATLAB中,绘图命令画出的第一条曲线以蓝色为默认颜色,使用hold on
方法每条线是由不同的绘图命令完成的,分两次完成绘制,因此两条曲线的颜色相同。plot(x,y1,x,y2)
语句是一次画出两个图形,为了区分第二个图形的默认颜色是绿色。
example:
>> x = 0:pi/100:2*pi;>> y1 = cos(x) * 2;>> y2 = cos(x) * 3;>> y3 = cos(x) * 4;>> y4 = cos(x) * 5;>> z = [y1,y2,y3,y4];>> plot(x,y1,x,y2,x,y3,x,y4)
4)peaks函数
函数peaks是MATLAB中的双变量正态分布的实体模型函数,用于演示图形功能。若函数peaks只有一个变量n,则会产生一个n*n的矩阵,函数peaks创建的矩阵可以作为函数plot的自变量。
>> plot(peaks(100))
5)单复数数组绘图
如果plot的输入是一个复数数组,则MATLAB以复数的实部为x轴,虚部为y轴进行绘图
>> A = [0+0i,1+2i,2+5i,3+4i];>> plot(A),title('复数绘图'),xlabel('实部'),ylabel('虚部')
6)双复数数组绘图
如果plot的输入参数是两个复数数组,则忽略复数的虚部进行绘图。以第一个数组的实部作为x轴坐标,以第二个数组的虚部作为y轴坐标,绘制曲线。
>> AA = 0.0000 + 0.0000i 1.0000 + 2.0000i 2.0000 + 5.0000i 3.0000 + 4.0000i>> B = sin(A)B = 0.0000 + 0.0000i 3.1658 + 1.9596i 67.4789 -30.8794i 3.8537 -27.0168i>> plot(A,B),title('复数绘图'),xlabel('第一个数组的实部'),ylabel('第二个数组的实部')警告: 复数 X 和/或 Y 参数的虚部已忽略
7)线条,颜色和标记的风格
help plotdoc plot
可以获取线条颜色和标记风格的详细信息,风格由中三部分组成
example:
plot(x,y,':ok') % 点,圆圈,黑色plot(x,y,'--xr') % 虚线,x形状,红色plot(x,y,'-b') % 实线,默认点类型,蓝色
8)坐标轴定标和图例标注
example:
将x轴限定在-2到+3的范围内,将y轴限定在0到10范围内
axis([-2,3,0,10])
2.子图
使用subplot(m,n,p)
命令可以把图形窗口分成m行n列的多个区域,并在第p个小窗口绘制下一个图形
example:
>> x = 0:pi/20:2*pi;>> subplot(2,1,1) % 在两行一列的上半部分绘图>> plot(x,sin(x))>> subplot(2,1,2) % 在两行一列的下半部分绘图 >> plot(x,sin(2*x))
3.其他类型的二维图形
1)极坐标图
使用函数polar(theta,r)
>> x = 0:pi/100:pi;>> y = sin(x);>> polar(x,y)
2)对数图
>> x = 0:0.5:50;>> y = 5 * power(x,2);>> subplot(2,2,1)>> plot(x,y),title('plot图')>> >> subplot(2,2,2)>> semilogx(x,y),title('semilogx图')>> >> subplot(2,2,3)>> semilogy(x,y),title('semilogy图')>> >> subplot(2,2,4)>> loglog(x,x),title('loglog图')
3)条形图和饼图
条形图,柱状图和饼图是三种最常见的图形表现方式
example:
>> x = [1,2,5,4,8];>> y = [x;1:5];>> subplot(2,2,1),bar(x),title('垂直条形图')>> subplot(2,2,2),bar(y),title('两组显示的垂直条形图')>> subplot(2,2,3),bar3(y),title('三维条形图')>> subplot(2,2,4),pie(x),title('饼图')>>
4)柱状图
柱状图是一种用于数据统计分析的图形,通过它可以显示出数据的分布情况
>> x = [100,95,74,87,22,78,34,35,93,88,86,42,55,48];>> hist(x)
数据被默认分成10份,如果原始数据量很大,可以分成更多份
hist(x,25)
如果把函数hist赋值给一个变量,那么图中每个条形图中的数据就会存储在矩阵A中:
>> A = hist(x)A = 1 2 1 1 1 0 1 1 3 3
4)双y轴图
有时需要把两个x-y坐标图输入到同一坐标图中,在这种情况下,如果两个坐标轴y轴的度量相差很多的话会会按照较大的度量来确定坐标轴的度量,这样度量较小的部分变化难以看出,如下所示:
首先在第一部分采用普通方式绘制二维图形:
>> x = 0:pi/20:2*pi;>> y1 = sin(x);>> y2 = exp(x);>> subplot(2,1,1)>> plot(x,y1,x,y2)
第二部分使用plotyy函数,可以在一张图中使用两个不同的y轴坐标作图,左边是第一组数据的y轴坐标,右边是第二组数据的y轴坐标
>> subplot(2,1,2)>> plotyy(x,y1,x,y2)
函数plotyy可以选择不同的绘图类型,下面的代码采用对数坐标轴
>> subplot(2,1,1)>> plotyy(x,y1,x,y2,'semilogy')>> subplot(2,1,2)>> plotyy(x,y1,x,y2,'semilogx')
4.三维绘图
三维绘图的MATLAB命令如下:
1)三维线图
plot3是绘制三维线图的基本函数,通过x,y,z三个输入矢量在三维空间内绘制三维线图
>> x = linspace(0,10*pi,1000);>> y = cos(x);>> z = sin(x);>> plot3(x,y,z)>> grid>> xlabel('角度'),ylabel('cos(x)'),zlabel('sin(x)'),title('plot3绘图')
2)mesh曲面图
注意:若函数自变量是一个m*n矩阵,则矩阵中元素的数值为z轴坐标,元素的位置分别是x轴坐标和y轴坐标(要注意理解)
>> z = [1,2,3,4,5,6,7,8,9,10; 2,4,6,8,10,12,14,16,18,20; 3,4,5,6,7,8,9,10,11,12];>> mesh(z),xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis')
mesh可以有三个自变量,mesh(x,y,z)。矢量x的元素个数必须和矩阵z的列数相同,矢量y的元素个数必须和矩阵z的行数相同(要注意理解)
>> x = linspace(1,50,10)x = 1.0000 6.4444 11.8889 17.3333 22.7778 28.2222 33.6667 39.1111 44.5556 50.0000>> y = linspace(500,1000,3)y = 500 750 1000>> z = [1,2,3,4,5,6,7,8,9,10; 2,4,6,8,10,12,14,16,18,20; 3,4,5,6,7,8,9,10,11,12]z = 1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 12 14 16 18 20 3 4 5 6 7 8 9 10 11 12>> mesh(x,y,z)
3) surf曲面图
surf和mesh的不同之处在于,surf图绘制的是着色的三维曲面图,其颜色由z决定。
surf图的输入参数和mesh相同可以有一个输入变量也可以有三个输入变量。surf(z)以z的行列作为x轴和y轴的坐标。
使用shading命令可以控制图形的阴影效果
shading interp
使用colormap命令可以控制图形的颜色
>> mesh(x,y,z),colormap(summer)
4) 等高图
>> x = [-1:0.2:2];>> y = x;>> [X,Y] = meshgrid(x,y); % 采样点>> Z = X .* exp(-X.^2 - Y .^2);>> subplot(2,2,1),mesh(X,Y,Z)>> subplot(2,2,2),surf(X,Y,Z)>> subplot(2,2,3),contour(X,Y,Z)>> subplot(2,2,4),surfc(X,Y,Z)
5) 伪色图
伪色图与等高图类似,不同之处在于伪色图是用带栅格的二维阴影图代替等高图中的轮廓线。根据MATLAB中实体模型函数peaks中的输入参数矩阵x,y,z做出伪色图,输出结果是一个类似山峰的曲面:
>> [x,y,z] = peaks;>> subplot(2,2,1),pcolor(x,y,z)>> >> subplot(2,2,2),pcolor(x,y,z),shading interp>> >> subplot(2,2,3),pcolor(x,y,z),shading interp,hold on,contour(x,y,z,20,'k') % 其中20代表绘制20条等高线,k代表黑色>> >> subplot(2,2,4),contour(x,y,z)
5.图形窗口的简单操作
自己尝试一下就好
- Matlab学习笔记(四)
- MATLAB学习笔记(四)
- MATLAB学习笔记 函数记录(四)
- [Matlab]基础教程学习笔记(四):二维高层绘图操作
- Matlab图像处理学习笔记(四):多边形检测
- matlab学习笔记(四)--- 图像的几何操作
- 自适应四元数kalman滤波matlab学习笔记(四)
- MATLAB学习笔记四(关于图像处理)
- 《电路计算C++与MATLAB》学习笔记(四)
- Matlab学习笔记四:三维绘图
- 【Matlab学习笔记】(四)认识matlab的文件类型和简单练习
- matlab基础知识学习(四)
- MATLAB学习笔记(四):符号计算(微分方程+三大变换)
- Arduino学习笔记(四)Matlab串口控制Arduino转动电机
- MATLAB学习(四)Excel读写数据
- 学习笔记(四)
- 学习笔记(四)
- 学习笔记(四)
- JAVA 反射 总结 之 初级 (一)
- 用matlab程序实现求解三次样条插值
- android 笔记
- Count and Say
- Tomcat Maven插件持续快捷部署Web项目
- MATLAB学习笔记(四)
- 15第十一周项目二——职员有薪水了(1)
- IOS开发之实现App消息推送(IOS 8)
- libev的入门笔记(基本使用)
- 第9周项目4-我的向量类
- C++ mkdir 创建多级文件夹目录
- 第十一周上机实践项目2——职员有薪水了(1)
- Android xml布局文件报错Incorrect line ending: found carriage return (\r) without corresponding newline (\n
- 第9周项目5-一元一次方程类