MATLAB编程与作图
matlab绘图课件

柱状图
总结词
用于比较不同类别数据的数值大小。
详细描述
柱状图是一种常用的数据可视化工具,它通过在垂直或水平方向上绘制一系列的柱子,每个柱子代表一个数据类 别,高度或长度表示该类别的数值大小。柱状图可以清晰地展示不同类别之间的数值差异和比较。
饼图
总结词
用于表示各部分在总体中所占的比例。
VS
详细描述
饼图是一种圆形图表,它将一个完整的圆 分割成若干个扇形,每个扇形代表一个数 据类别,扇形的面积或角度表示该类别的 比例大小。饼图可以清晰地展示各部分在 总体中所占的比例和比较。
动画制作
帧动画
通过在连续的帧上绘制图形或改 变图形属性来创建动画效果。
交互式动画
使用鼠标或键盘控制动画的播放 暂停和停止等操作。
运动轨迹
绘制物体在运动过程中的轨迹, 以展示物体的运动规律和特点。
三维图形
三维曲线
在三维空间中绘制曲线,可以展 示不同变量之间的关系和变化趋
势。
三维曲面
通过绘制三维曲面来展示两个或多 个变量之间的关系和分布情况。
函数调用与执行
在主程序中调用自定义函数,执行绘图操作,实现特定图形的绘 制。
数据导入和导
1 2
数据导入
将外部数据文件(如Excel、CSV等格式)导入 Matlab中,用于后续的绘图分析。
数据处理
对导入的数据进行必要的预处理和清洗,以满足 绘图需求。
3
数据导出
将绘制好的图形和数据导出为特定格式(如PNG 、JPEG、PDF等),方便分享和保存。
三维体图
绘制三维体图来展示数据的空间分 布和密度变化,如云图、等高线图 等。
04
实例分析
绘制正弦函数图像
利用MATLAB编程实现动态画图功能

自动化专业综合设计报告设计题目:利用MATLAB编程实现动态画图功能所在实验室:自动化系统仿真实验室指导教师:学生姓名班级计082-2 班学号200825502210撰写时间:2012-3-1 成绩评定:一.设计目的a)进一步熟悉Matlab的界面及基本操作;b)了解并掌握Matlab中一些函数的作用与使用;c)学会如何利用Matlab实现绘图功能,并可使坐标系动态设置。
二.设计要求外部输入数据动态设置坐标系,然后绘制图形,并举例演示。
三.设计内容Matlab用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
我设计的题目是利用matlab的GUI编程实现动态的画图功能。
GUI运行时主界面如下:在文本输入框中分别输入x、y、z的值,其中y的值可以是包含x的表达式,z的值可以是包含x和y的表达式。
当y和z的值均为0时,绘制x的曲线;当z的值为0时,绘制二维图形;当z的值不为0时,可以绘制三维图形和三维曲面图。
设计步骤如下:1:打开matlab软件2:建立一个GUI文件,保存到work中3:添加控件主界面,包含的控件有:EditText,StaticText,Axes,PushButton。
其中EditText用于xyz值的输入,StaticText用于显示提示,Axes用于显示绘制的图形,PushButton作为绘图按钮。
4:编写程序程序的编写主要分为两个部分,一个是数据的采集,一个是绘图。
数据采集部分用到的函数主要是str2num、eval函数,具体程序如下: X值输入:function editX_Callback(hObject, eventdata, handles)clchandles.x=str2num(get(hObject,'string'))handles.xhandles=gcboguidata(hObject, handles);Y值输入:function edit2_Callback(hObject, eventdata, handles)clcx=handles.x;handles.y=eval(get(hObject,'string'))handles.yhandles=gcboguidata(hObject, handles);Z值输入:function edit3_Callback(hObject, eventdata, handles)clcx=handles.x;y=handles.y;handles.z=eval(get(hObject,'string'));if handles.z==0set(handles.pushbutton1,'Visible','on');set(handles.pushbutton4,'Visible','off');set(handles.pushbutton5,'Visible','off');elseset(handles.pushbutton1,'Visible','off');set(handles.pushbutton4,'Visible','on');set(handles.pushbutton5,'Visible','on');endhandles.zhandles=gcboguidata(hObject, handles);handles.zhandles=gcboguidata(hObject, handles);绘图部分用到的函数主要有axis(),plot(),plot3(),具体程序如下:绘制二维图形:clcx=handles.x;y=handles.y;handles.x=str2num(get(handles.xhandles,'string'))handles.y=eval(get(handles.yhandles,'string'))handles.z=eval(get(handles.zhandles,'string'));xmin=min(handles.x)-min(handles.x)/10;xmax=max(handles.x)+min(handles.x)/10;ymin=min(handles.y)-min(handles.y)/10;ymax=max(handles.y)+min(handles.y)/10;if y==0q=plot(handles.x)elsev=[xmin xmax ymin ymax]; axis(v);q=plot(handles.x,handles.y);endxlabel('X Öá');ylabel('YÖá');绘制三维图形:function pushbutton4_Callback(hObject, eventdata, handles) clcx=handles.x;y=handles.y;handles.y=eval(get(handles.yhandles,'string'))handles.z=eval(get(handles.zhandles,'string'));xmin=min(handles.x)-min(handles.x)/10;xmax=max(handles.x)+min(handles.x)/10;ymin=min(handles.y)-min(handles.y)/10;ymax=max(handles.y)+min(handles.y)/10;zmin=min(handles.z)-min(handles.z)/10;zmax=max(handles.z)+min(handles.z)/10;v=[xmin xmax ymin ymax zmin zmax];axis(v);q=plot3(handles.x,handles.y,handles.z);绘制三维曲面图:function pushbutton5_Callback(hObject, eventdata, handles) clcx=handles.xy=handles.yhandles.x=eval(get(handles.editX,'string'));handles.y=eval(get(handles.yhandles,'string'))xmin=min(handles.x)-min(handles.x)/10;xmax=max(handles.x)+min(handles.x)/10;ymin=min(handles.y)-min(handles.y)/10;ymax=max(handles.y)+min(handles.y)/10;zmin=min(handles.z)-min(handles.z)/10;zmax=max(handles.z)+min(handles.z)/10;v=[xmin xmax ymin ymax zmin zmax];axis(v);x1=ones(size(handles.y))*handles.x;y1=handles.y*ones(size(handles.x));r=sqrt(x1.^2+ y1.^2)+eps;z=sin(r)./rq=mesh(z);四.设计实验结果及分析当x=-10:0.01:100,y=sin(x),z=0时,得到的图形如下:当x=-10:0.01:10,y=sin(x),z=sin(x)+cos(y)时,得到的图形如下(三维图形):当x=-10:0.1:10,y=x’,z=1时,得到的图形如下(三维曲面图):五.设计感受我之前对于matlab编程的认识只是局限于M文件编程以及命令窗口编程。
MATLAB3+-+MATLAB绘图与程序设计+(2)

(4) 双纵坐标图 语法: plotyy(x1,y1,x2,y2) %以左、右不同纵轴绘制两
条曲线
说明:左纵轴用于(x1,y1)数据,右纵轴用于 (x2,y2)数据来绘制两条曲线。坐标轴的范围、 刻度都自动产生。
例8续 用plotyy函数实现在同一图形窗口绘制两 条曲线。
例5. 绘制三条曲线。
x=0:0.1:2*pi;
plot(x,sin(x),x,cos(x),x,sin(3*x)) %画三条曲线
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
0
1
2
3
4
5
6
7
绘制曲线的一般步骤
步骤
内容
1 曲线数据准备:对于二维曲线,横坐标和纵坐标数据变量;对 于三维曲面,矩阵参变量和对应的函数值。
说明:在设置了“hold on”后,如果画多个图 形对象,则在生成新的图形时保留当前坐标系 中已存在的图形对象,MATLAB会根据新图 形的大小,重新改变坐标系的比例。
例8 在同一窗口画出函数sinx在区间[0 2π]的 曲线和cosx在区间[-π π]的曲线。
x1=0:0.1:2*pi; plot(x1,sin(x1)) hold on x2=-pi:.1:pi; plot(x2,cos(x2))
2 指定图形窗口和子图位置:默认时,打开Figure No.1窗口或当 前窗口、当前子图;也可以打开指定的图形窗口和子图。
3 设置曲线的绘制方式:线型、色彩、数据点形。
4 设置坐标轴:坐标的范围、刻度和坐标分格线
第4章 MATLAB绘图

第4章 MATLAB绘图
——MATLAB语言丰富的图形表现 方法,使得数学计算结果可以方便 地、多样性地实现了可视化,这是 其他语言所不能比拟的。
第4章 MATLAB绘图
Matlab语言的绘图功能
• 不仅能绘制几乎所有的标准图形,而 且其表现形式也是丰富多样的。
• Matlab语言不仅具有高层绘图能力, 而且还具有底层绘图能力——句柄绘 图方法。
%加图形标题
xlabel('Variable X');
%加X轴说明
ylabel('Variable Y');
%加Y轴说明
text(0.8,1.5,'曲线y1=2e^{-0.5x}'); %在指定位置 添加图形说明
text(2.5,1.1,'曲线y2=cos(4{\pi}x)');
legend(‘y1’,‘ y2’)
第4章 MATLAB绘图
(2) 当输入参数有矩阵形式时,配对的 x,y按对应列元素为横、纵坐标分别绘 制曲线,曲线条数等于矩阵的列数。
第4章 MATLAB绘图
例4-3 分析下列程序绘制的曲线。 x1=linspace(0,2*pi,100); x2=linspace(0,3*pi,100); x3=linspace(0,4*pi,100); y1=sin(x1); y2=1+sin(x2); y3=2+sin(x3); x=[x1;x2;x3]'; y=[y1;y2;y3]'; plot(x,y,x1,y1-1)
程序如下: x=0:pi/100:2*pi; y1=0.2*exp(-0.5*x).*cos(4*pi*x); plot(x,y1) hold on y2=2*exp(-0.5*x).*cos(pi*x); plot(x,y2); hold off
最全面的MATLAB作图

Matlab绘图强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数。
此外,Matlab还提供了直接对图形句柄进行操作的低层绘图操作。
这类操作将图形的每个图形元素(如坐标轴、曲线、文字等)看做一个独立的对象,系统给每个对象分配一个句柄,可以通过句柄对该图形元素进行操作,而不影响其他部分。
本章介绍绘制二维和三维图形的高层绘图函数以及其他图形控制函数的使用方法,在此基础上,再介绍可以操作和控制各种图形对象的低层绘图操作。
一.二维绘图二维图形是将平面坐标上的数据点连接起来的平面图形。
可以采用不同的坐标系,如直角坐标、对数坐标、极坐标等。
二维图形的绘制是其他绘图操作的基础。
一.绘制二维曲线的基本函数在Matlab中,最基本而且应用最为广泛的绘图函数为plot,利用它可以在二维平面上绘制出不同的曲线。
1.plot函数的基本用法plot函数用于绘制二维平面上的线性坐标曲线图,要提供一组x坐标和对应的y坐标,可以绘制分别以x和y为横、纵坐标的二维曲线。
plot函数的应用格式plot(x,y) 其中x,y为长度相同的向量,存储x坐标和y坐标。
例51 在[0 , 2pi]区间,绘制曲线程序如下:在命令窗口中输入以下命令>> x=0:pi/100:2*pi;>> y=2*exp(-0.5*x).*sin(2*pi*x);>> plot(x,y)程序执行后,打开一个图形窗口,在其中绘制出如下曲线注意:指数函数和正弦函数之间要用点乘运算,因为二者是向量。
例52 绘制曲线这是以参数形式给出的曲线方程,只要给定参数向量,再分别求出x,y向量即可输出曲线:>> t=-pi:pi/100:pi;>> x=t.*cos(3*t);>> y=t.*sin(t).*sin(t);>> plot(x,y)程序执行后,打开一个图形窗口,在其中绘制出如下曲线以上提到plot函数的自变量x,y为长度相同的向量,这是最常见、最基本的用法。
MATLAB画图——基础篇

MATLAB画图——基础篇MATLAB画图——基础篇在MATLAB使⽤的过程中,学会画图是⼀项必要的技能。
在这⾥,我总结了部分简单的画图函数,同时附上代码(本⽂中的程序为了⽅便给出的数据都很简单,⼤家可以⾃⼰去尝试其他数据)。
这对刚刚开始接触MATLAB的⼩⽩来说,我认为还是很有帮助的。
⽂章⽬录⼀、plot()函数1.⼆维图形(1)绘图选项线型颜⾊标记符号-实线b蓝⾊.点s⽅块:虚线g绿⾊o圆圈d菱形.-点划线r红⾊x叉v朝下三⾓符号-双划线c青⾊+加号^朝上三⾓符号m品红*星号<朝左三⾓符号y黄⾊>朝右三⾓符号p五⾓星k⿊⾊h六⾓星w⽩⾊(2)图形的辅助标注和窗⼝的分割title(图形说明)xlabel(x轴说明)ylabel(y轴说明)text(x,y图形说明)——在x,y轴处添加⽂字说明legend(图例⼀,图例⼆,…)subplot(m,n,p)——将绘图区域分割成m*n个⼦区域,并按照⾏从左⾄ 右,从上⾄下依次编号。
p表⽰第p个绘图⼦区域。
注意:如果是要两个图画到同⼀个坐标⾥⾯,则在两个plot函数之间添加⼀⾏hold on(3)格式plot(x)——缺省⾃变量绘图格式plot(x,y)——基本格式。
以y(x)的函数关系作图。
如果y是n*m的矩 阵,则x为⾃变量,作出m条曲线。
plot(x1,y1,x2,y2,…,xn,yn)——多条曲线绘图格式plot(x1,y1,选项1,x2,y2,选项2,…,xn,yn,选项n)——含选项的绘图格式x1=[1 2 3 4 5 6 7 8 9];x2=[2 4 6 8 10 12 14 16 18];y1=[1 4 9 16 25 36 49 64 81];y2=[18 16 14 12 10 8 6 4 2];subplot(4,1,1);plot(x1);title('例⼀');xlabel('⾃变量');ylabel('因变量');subplot(4,1,2);plot(x1,y1);title('例⼆');xlabel('⾃变量');ylabel('因变量');subplot(4,1,3);plot(x1,y1,x2,y2);title('例三');xlabel('⾃变量');ylabel('因变量');subplot(4,1,4);plot(x1,y1,'m+',x2,y2,'c*');title('例四');xlabel('⾃变量');ylabel('因变量');2.三维图形(1)格式plot3(x1,y1,z1,‘选项⼀’,x2,y2,z1,‘选项⼆’,…)x,y,z是长度相同的向量:⼀条曲线x,y,z是维度相同的矩阵:多条曲线(2)⽹格矩阵⽣成函数:meshgrid[X,Y]=meshgrid(x,y)x,y是给定的向量,X,Y是⽹格划分后得到的⽹格矩阵注意,这个函数⽤来⽣成⽹格矩阵,不是直接⽤来画图的,配合mesh使⽤。
详尽全面的matlab绘图教程

详尽全⾯的matlab绘图教程Matlab绘图强⼤的绘图功能是Matlab的特点之⼀,Matlab提供了⼀系列的绘图函数,⽤户不需要过多的考虑绘图的细节,只需要给出⼀些基本参数就能得到所需图形,这类函数称为⾼层绘图函数。
此外,Matlab还提供了直接对图形句柄进⾏操作的低层绘图操作。
这类操作将图形的每个图形元素(如坐标轴、曲线、⽂字等)看做⼀个独⽴的对象,系统给每个对象分配⼀个句柄,可以通过句柄对该图形元素进⾏操作,⽽不影响其他部分。
本章介绍绘制⼆维和三维图形的⾼层绘图函数以及其他图形控制函数的使⽤⽅法,在此基础上,再介绍可以操作和控制各种图形对象的低层绘图操作。
⼀.⼆维绘图⼆维图形是将平⾯坐标上的数据点连接起来的平⾯图形。
可以采⽤不同的坐标系,如直⾓坐标、对数坐标、极坐标等。
⼆维图形的绘制是其他绘图操作的基础。
⼀.绘制⼆维曲线的基本函数在Matlab中,最基本⽽且应⽤最为⼴泛的绘图函数为plot,利⽤它可以在⼆维平⾯上绘制出不同的曲线。
1. plot函数的基本⽤法plot函数⽤于绘制⼆维平⾯上的线性坐标曲线图,要提供⼀组x坐标和对应的y坐标,可以绘制分别以x和y为横、纵坐标的⼆维曲线。
plot函数的应⽤格式plot(x,y) 其中x,y为长度相同的向量,存储x坐标和y坐标。
例51 在[0 , 2pi]区间,绘制曲线程序如下:在命令窗⼝中输⼊以下命令>> x=0:pi/100:2*pi;>> y=2*exp(-0.5*x).*sin(2*pi*x);>> plot(x,y)程序执⾏后,打开⼀个图形窗⼝,在其中绘制出如下曲线注意:指数函数和正弦函数之间要⽤点乘运算,因为⼆者是向量。
例52 绘制曲线这是以参数形式给出的曲线⽅程,只要给定参数向量,再分别求出x,y向量即可输出曲线:>> t=-pi:pi/100:pi;>> x=t.*cos(3*t);>> y=t.*sin(t).*sin(t);>> plot(x,y)程序执⾏后,打开⼀个图形窗⼝,在其中绘制出如下曲线以上提到plot函数的⾃变量x,y为长度相同的向量,这是最常见、最基本的⽤法。
第二章 MATLAB绘图

说明:
(1)当x,y是同维矩阵时,则以x,y对应列元素为
横、纵坐标分别绘制曲线,曲线条数等于矩阵
的列数。 (2)当x是向量,y是有一维与x同维的矩阵时, 则绘制出多根不同色彩的曲线。曲线条数等于 y矩阵的另一维数,x被作为这些曲线共同的横
坐标。
(3)plot函数最简单的调用格式是只包含一个输 入参数:plot(x)。
对图形窗口灵活分割。请看下面的程序。
x=linspace(0,2*pi,60);
y=sin(x);z=cos(x);
t=sin(x)./(cos(x)+eps); ct=cos(x)./(sin(x)+eps); subplot(2,2,1); stairs(x,y); title('sin(x)-1');axis ([0,2*pi,-1,1]); %选择2×2个区中的1号区
2.2.1绘制三维曲线的最基本函数 plot3函数与plot函数用法十分相似,其调用格式为: plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n)
4. 对函数自适应采样的绘图函数
fplot函数的调用格式为: fplot(fname,lims,tol,选项) 例2.11 用fplot函数绘制f(x)=cos(tan(πx))的曲线。 先建立函数文件myf.m: function y=myf(x) y=cos(tan(pi*x));
再用fplot函数绘制myf.m函数的曲线:
例2.6 用图形保持功能在同一坐标内绘制曲线
y=2e-0.5xsin(2πx)及其包络线,并加网格线。
程序如下: x=(0:pi/100:2*pi)'; y1=2*exp(-0.5*x)*[1,-1];y2=2*exp(-0.5*x).*sin(2*pi*x); plot(x,y1,'b:'); axis([0,2*pi,-2,2]); %设置坐标 hold on; %设置图形保持状态 plot(x,y2,'k'); grid on; %加网格线 box off; %不加坐标边框 hold off; %关闭图形保持
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.开关结构:switch语句 其语语句组1 case 表达式2 语句组2 …… case 表达式m 语句组m otherwise 语句组m+1 end
例3. 某商场对顾客所购买的商品实行打折销售,
已知打折标准为: 商品价格小于200元时,折扣率为0; 商品价格大于或等于200元且小于500时,折扣率为0.03; 商品价格大于或等于500且小于1000元时,折扣率为0.05; 商品价格大于或等于1000且小于2500元时,折扣率为0.08; 商品价格大于或等于2500且小于5000元时,折扣率为0.1; 商品价格大于或等于5000元时,折扣率为0.14; 求所售商品的实际销售价格。
如
>> format short 示5位 >> pi
ans = 3.1416 >> format long 15位 >> pi ans = 3.14159265358979 %设置定点格式,显示
%设置定点格式,显
关系与逻辑运算
1. 关系操作符
关系操作符 < <= > >= == ~= 说明 小于 小于或等于 大于 大于或等于 等于 不等于
2. 逻辑运算符
逻辑操作符 & ︱ ~
说明 与 或 非
• • • • • • •
MATLAB流程控制 循环语句 for, while 条件转移 if end, if elseif else end 开关语句 switch case 注释语句 % 中断语句 break 暂停语句 pause 回显语句 echo on/off
y= 47.1893
3.多分支if语句 语句格式为: if 条件1 语句组1 else if 条件2 语句组2 …… else if 条件m 语句组m else 语句组m+1 end
例2. 输入一个字符,若为大写字母,则输出其
后继字符,若为小写字母,则输出其前导字符, 若为数字字符则输出其对应的数值,若为其他 字符则原样输出。
例1. 计算分段函数值 程序如下: 1.m
2 cos( x 1) x 1, x 10 y x x x , x 10
>> x=input('请输入x的值:'); if x==10 y=cos(x+1)+sqrt(x*x+1); else y=x*sqrt(x+sqrt(x)); end y 请输入x的值: 12
Price.m
请输入商品价格890
price =
845.5000
3. try语句 语句格式为: try 语句组1 catch 语句组2 end try语句先试探性执行语句组1,如果语句组1在 执行过程中出现错误,则将错误信息赋给保留 的lasterr变量,并转去执行语句组2。这种试探 性执行语句是其他高级语言所没有的。
程序如下
>>price=input('请输入商品价格'); switch fix(price/100) case {0,1} rate=0; case {2,3,4} rate=3/100; case {5:9} rate=5/100; case {10:24} rate=8/100; case {25:49} rate=10/100; otherwise rate=14/100; end price=price*(1-rate)
选择结构
1. if语句 在MATLAB中,if语句有3种格式。 1.单分支if语句 语句格式为: if 条件 语句组 end 当条件成立时,则执行语句组,执行完之 后继续执行if语句的后继语句,若条件不成立, 则直接执行if语句的后继语句。
2.双分支if语句 语句格式为: if 条件 语句组1 else 语句组2 end 当条件成立时,执行语句组1,否则执行语句组 2,语句组1或语句组2执行后,再执行if语句的 后继语句。
数学实验
MATLAB编程与作图
数据的输出格式 • MATLAB用十进制数表示一个常数,具体可 采用日常记数法和科学记数法两种表示方法。 • 数据输出时用户可以用 format 命令设置或改 变 数 据 输 出 格 式 。 format 命 令 的 格 式 为 : format 格式符 • 注意, format 命令只影响在屏幕上的显示数 据输出格式,而不影响数据的计算和存 储 ,MATLAB 的数据存储和运算总是以双精 度进行的。
可用菜单File/Preferences中的Command Window 里的Numarical Format来设定数据显示方式,有 short(小数点后4位), long(15位数字), bank(小数点后2位), short e(5位科学计数法), long e(15位科学计数法), rat(最接近的有理数). 也可在Command Window中用命令设置,例如: format long
format short :5位定点格式,如 1.4142 format long :15位定点格式,如 1.41421356237310 format short e :5位浮点,如1.4142e+000 format long e :15位浮点,如 1.414213562373095e+000 format short g :5位定点或浮点取优,如1.4142 format long g:15位定点或浮点取优,如 1.4142135623731 format hex :十六进制数,如3ff6a09e667f3bcd format bank :货币格式,如1.41 format rat :分数之比,如1393/985 format +:若为正数则显示+,若为负数则显示-,若为0 则显示空
程序如下:
2.m
c=input('请输入一个字符','s'); if c>='A' & c<='Z' disp(setstr(abs(c)+1)); elseif c>='a'& c<='z' disp(setstr(abs(c)-1)); elseif c>='0'& c<='9' disp(abs(c)-abs('0')); else disp(c); end