搜档网
当前位置:搜档网 › 分段函数的matlab作图

分段函数的matlab作图

分段函数的matlab作图
分段函数的matlab作图

MATLAB 分段函数绘图

1.一元分段函数绘图

例如:

把下面的函数保存为Piecewise_x.m文件

function F=Piecewise_x(x)

F=x.^2.*(x>=0 & x<1)+cos(pi*(x-1)).*(x>=1 & x<2)+(-x.^2./(x+2)).*(x>=2 & x<=4); end

运行:

x=linspace(0,4);

F=Piecewise_x(x);%计算相应函数值

plot(x,F);%绘制曲线

hold on;

plot(1*ones(1,2),ylim,'r:');%画区间间隔线

plot(2*ones(1,2),ylim,'r:');%画区间间隔线

一元分段函数图

2.二元分段函数绘图

例如:

把下面的函数保存为Piecewise_xy.m文件

function Pxy=Piecewise_xy(x,y)

Pxy=0.5457*exp(-0.75*y^2 - 3.75*x^2 - 1.5*x).*(x+y>1)+...

0.7575*exp(-y^2 - 6*x^2).*(x+y>-1)+...

0.5457*exp(-0.75*y^2 - 3.75*x^2 + 1.5*x).*(x+y<=-1); end

运行:

[x,y]=meshgrid(-3:0.1:3);

s=size(x)

Pxy=zeros(s(1),s(2));

for i=1:s(1)

for j=1:s(2)

Pxy(i,j)=Piecewise_xy(x(i,j),y(i,j));

end

end

mesh(x,y,Pxy)

二元分段函数图

利用MATLAB绘制二维函数图形

《MATLAB语言》课程论文 利用MATLAB绘制二维函数图形 姓名:海燕 学号:12010245375 专业:通信工程 班级:通信一班 指导老师:汤全武 学院:物理电气信息学院 成日期:2011年12月5 利用MATLAB绘制二维函数图形 (海燕 12010245375 2010级通信1班) [摘要]大学高等数学中涉及许多复杂的函数求导绘图极值及其应用的问题,例如二维绘图,对其手工

绘图因为根据函数的表达式的难易程度而不易绘制,而MATLAB语言正是处理这类的很好工具,既能简易的写出表达式,又能绘制有关曲线,非常方便实用。另外,利用其可减少工作量,节约时间,加深理解,同样可以培养应用能力。本文将探讨利用matlab来解决高等数学中的二维图形问题,并对其中的初等函数、极坐标、进行实例分析,对于这些很难用手工绘制的图形,利用matlab则很轻易地解决。[关键词]高等数学一元函数二元函数 MATLAB语言图形绘制 一、问题的提出 MATLAB 语言是当今国际上科学界 (尤其是自动控制领域) 最具影响力、也是最有活力的软件。它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、便捷的与其他程序和语言接口的功能。中学数学中常见到的是二维平面图形,由于概念抽象,学生不好理解,致使学生对学习失去信心,导致学习兴趣转移。在传统的教学中,教师在黑板上应用教具做图,不能保证所做图形的准确性,曲线的光滑度不理想,教学过程显得枯燥无味,教学质量难以保证。Matlab是集数值计算、符号计算和图形可视化三大基本功能于一体的大型软件,广泛应用于科学研究、工程计算、动态仿真等领域。Matlab是一种集成了计算功能、符号运算、数据可视化等强大功能的数学工具软件。其代码的编写过程与数学推导过程的格式很接近,所以使编程更为直观和方便,应用于教学就更加容实现Matlab软件尤 其在简单的绘图中有较强的编辑图形界面功能,在中学的数学教学中的抽象函数变得直观 形象、容易实现,同时也激发学生的学习兴趣,学生通过数形结合,更好地理解题意高等数学是一门十分抽象的学科,对于一些抽象的函数,我们可以借助于几何图形来理解,但这类图形的绘制往往很复杂,仅凭手工绘制也难以达到精确的效果,这时如果使用Matlab来解决所遇到的图形问题,则能达到事半功倍的效果。在高等数学领域中有关图形方面的应用,无论是初等函数图形、还是极坐标图形、统计图,对于Matlab而言都是完全可以胜任的。 下面结合实例从几个方面来阐述matlab在高等数学二维图形中的应用。 二、用matlab绘制一元函数图像 1.平面曲线的表示形式 对于平面曲线,常见的有三种表示形式,即以直角坐标方程 ] , [ ), (b a x x f y∈ =,以参数方程 ] , [ ), ( ), (b a t t y y t x x∈ = =,和以极坐标] , [ ), (b a r r∈ =? ?表示等三种形式。 2.曲线绘图的MATLAB命令 MATLAB中主要用plot,fplot二种命令绘制不同的曲线。 可以用help plot, help fplot查阅有关这些命令的详细信息 问题1 作出函数 x y x y cos , sin= =的图形,并观测它们的周期性。先作函数x y sin =在

关于MATLAB中分段函数的画法

关于MATLAB中分段函数的画法 最近拿到一题关于MATLAB的分段函数画法的题目,我在网上找了挺久,但没发现很多有用的资料.所以感觉很棘手.但是问题还是要解决,所以我就自己整理了些东西,不怕大家见笑. 我把这些分段函数分为两类: 一.对于y=f(x)这个模型来讲,一类是关于其中一个段是y为常量的一个模型,举例说明. 例 1.y={0,(x<0);1,(x>=0)};在x>-10&x<10区间内的图形 代码如下 : x=-10:0.01:10; y=ones(size(x)); y(x<=0)=0; plot(x,y); axis([-10 10 -0.5 1.5]); 这样的处理方法就是对于x是变量而Y为常量的而直接定义常数矩阵,再通过判断进行修改,只适合于Y为常量的基础上. ________________________________________________华丽分割线_______________________________________________ 二.第二种是y=f(x),y是关于x的一个变量.需要将x进行赋值的分段函数.这种处理方法比较多. 这里引用一段经典matlab分段画图的例子给大家(代码为蓝色区域): 例 2: x=-3:0.01:3; y1=zeros(size(x)); y2=zeros(size(x)); y3=zeros(size(x)); N=length(x); for k=1:N if x(k)<-1&x(k)>=-3; y1(k)=(-x(k).^2-4*x(k)-3)/2; elseif x(k)>=-1&x(k)<1 ; y2(k)=-x(k).^2+1; else x(k)<=3&x(k)>=1 ; y3(k)=(-x(k).^2+4*x(k)-3)/2; end end y=y1+y2+y3; plot(x,y) 这里运用的是将Y的值设置成三个与x的数量相等的空变量.然后分别依次讲X 的值通过f(x)转换为Y然后画出图形并将三个图形进行组合.

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中bode图绘制技巧(精)

Matlab中Bode图的绘制技巧学术收藏2010-06-04 21:21:48 阅读54 评论0 字号:大中小订阅我们经常会遇到使用Matlab画伯德图的情况,可能我们我们都知道bode这个函数是用来画bode图的,这个函数是Matlab内部提供的一个函数,我们可以很方便的用它来画伯德图,但是对于初学者来说,可能用起来就没有那么方便了。譬如我们要画出下面这个传递函数的伯德图: 1.576e010 s^2 H(s= ------------------------------------------------------------------------------------------ s^4 + 1.775e005 s^3 + 1.579e010 s^2 + 2.804e012 s + 2.494e014 (这是一个用butter函数产生的2阶的,频率范围为[20 20K]HZ的带通滤波器。我们可以用下面的语句:num=[1.576e010 0 0]; den=[1 1.775e005 1.579e010 2.804e012 2.494e014]; H=tf(num,den; bode(H 这样,我们就可以得到以下的伯德图: 可能我们会对这个图很不满意,第一,它的横坐标是rad/s,而我们一般希望横坐标是HZ;第二,横坐标的范围让我们看起来很不爽;第三,网格没有打开(这点当然我们可以通过在后面加上grid on解决)。下面,我们来看看如何定制我们自己的伯德图风格:在命令窗口中输入:bodeoptions 我们可以看到以下

内容:ans = Title: [1x1 struct] XLabel: [1x1 struct] YLabel: [1x1 struct]TickLabel: [1x1 struct]Grid: 'off' XLim: {[1 10]}XLimMode: {'auto'}YLim: {[1 10]} YLimMode: {'auto'}IOGrouping: 'none'InputLabels: [1x1 struct]OutputLabels: [1x1 struct]InputVisible: {'on'} OutputVisible: {'on'}FreqUnits: 'rad/sec'FreqScale: 'log' MagUnits: 'dB' MagScale: 'linear'MagVisible: 'on' MagLowerLimMode: 'auto'MagLowerLim: 0PhaseUnits: 'deg'PhaseVisible: 'on'PhaseWrapping: 'off' PhaseMatching: 'off'PhaseMatchingFreq: 0 PhaseMatchingValue: 0我们可以通过修改上面的每一 项修改伯德图的风格,比如我们使用下面的语句画我 们的伯德图:P=bodeoptions;P.Grid='on'; P.XLim={[10 40000]};P.XLimMode={'manual'};P.FreqUnits='HZ'; num=[1.576e010 0 0];den=[1 1.775e005 1.579e010 2.804e012 2.494e014];H=tf(num,den; bode(H,P 这时,我们将会看到以下的伯德图: 上面这张图相对就比较好了,它的横坐标单位 是HZ,范围是[10 40K]HZ,而且打开了网格,便于我 们观察-3DB处的频率值。当然,你也可以改变bodeoptions中的其它参数,做出符合你的风格的伯

实验2 Matlab绘图操作

实验2 Matlab 绘图操作 实验目的: 1、 掌握绘制二维图形的常用函数; 2、 掌握绘制三维图形的常用函数; 3、 掌握绘制图形的辅助操作。 实验容: 1. 设sin .cos x y x x ?? =+??+?? 23051,在x=0~2π区间取101点,绘制函数的曲线。 2. 已知: y x =2 1,cos()y x =22,y y y =?312,完成下列操作: (1) 在同一坐标系下用不同的颜色和线性绘制三条曲线; (2) 以子图形式绘制三条曲线; (3) 分别用条形图、阶梯图、杆图和填充图绘制三条曲线。 3. 已知:ln(x x e y x x ?+≤??=??+>??2 0102 ,在x -≤≤55区间绘制函数曲线。 4. 绘制极坐标曲线sin()a b n ρθ=+,并分析参数a 、b 、n 对曲线形状的影响。 5.在xy 平面选择区域[][],,-?-8888 ,绘制函数z = 6. 用plot 函数绘制下面分段函数的曲线。 ,(),,x x f x x x x ?++>? ==??+

(1).y x =-205 (2)sin()cos ,sin()sin x t t t y t t π=?≤≤? =?303 详细实验容: 1.设sin .cos x y x x ?? =+??+? ?23051,在x=0~2π区间取101点,绘制函数的曲线。 >> x=(0:2*pi/100:2*pi); >> y=(0.5+3*sin(x)/(1+x.^2))*cos(x); >> plot(x,y) 2.已知: y x =2 1,cos()y x =22,y y y =?312,完成下列操作: (1)在同一坐标系下用不同的颜色和线性绘制三条曲线; >> x= linspace(0, 2*pi, 101); >> y1=x.*x; >> y2=cos(2x); >> y3=y1.*y2; plot(x,y1,'r:',x,y2,'b',x,y3, 'ko')

Matlab实验

MATLAB实验报告 学校:湖北文理学院 学院:物理与电子工程学院 专业:电子信息工程 学号: 2013128182 姓名:张冲 指导教师:宋立新

实验一 MATLAB环境的熟悉与基本运算 一、实验目的: 1.熟悉MATLAB开发环境 2.掌握矩阵、变量、表达式的各种基本运算 二、实验内容 1、学习使用help命令,例如在命令窗口输入help eye,然后根据帮助说明, 学习使用指令eye(其它不会用的指令,依照此方法类推) 2、学习使用clc、clear,观察command window、command history和workspace 等窗口的变化结果。 3、初步程序的编写练习,新建M-file,保存(自己设定文件名,例如exerc1、 exerc2、exerc3……),学习使用MATLAB的基本运算符。 三、练习 1)help rand,然后随机生成一个2×6的数组,观察command window、 command history和workspace等窗口的变化结果。 2)学习使用clc、clear,了解其功能和作用。 3)用逻辑表达式求下列分段函数的值 4)求[100,999]之间能被21整除的数的个数。(提示:rem,sum的用法) 四、实验结果 1)

2)clc:清除命令窗口所有内容,数值不变;clear:初始化变量的值。3) 4)

实验二 MATLAB数值运算 一、实验目的 1、掌握矩阵的基本运算 2、掌握矩阵的数组运算 二、实验内容 1)输入C=1:2:20,则C(i)表示什么?其中i=1,2,3, (10) 2)输入A=[7 1 5;2 5 6;3 1 5],B=[1 1 1; 2 2 2; 3 3 3],在命令窗 口中执行下列表达式,掌握其含义: A(2, 3) A(:,2) A(3,:) A(:,1:2:3) A(:,3).*B(:,2) A(:,3)*B(2,:) A*B A.*B A^2 A.^2 B/A B./A 3)二维数组的创建和寻访,创建一个二维数组(4×8)A,查询数组A第2 行、第3列的元素,查询数组A第2行的所有元素,查询数组A第6列的所有 元素。 4)两种运算指令形式和实质内涵的比较。设有3个二维数组A 2×4,B 2×4 ,C 2×2 , 写出所有由2个数组参与的合法的数组运算和矩阵指令。 5)学习使用表4列的常用函数(通过help方法) 6)学习使用表5数组操作函数。 7)生成一个3行3列的随机矩阵,并逆时针旋转90°,左右翻转,上下翻转。 8)已知a=[1 2 3],b=[4 5 6],求a.\b和a./ b 9)用reshape指令生成下列矩阵,并取出方框内的数组元素。 三、实验结果 1)C(i)表示C中的第i个的数值;

用matlab绘制各种数字信号中的函数还有分段函数及翻褶平移

《数字信号处理》 (一)实验目的 使用stem绘图函数分别画出离散时间信号在指定范围内的图形。画图时使用xlabel,ylabel,title,legend等函数进行注释。复习MATLAB的基本应用,如:函数的定义、画图……并巩固理论知识中的多种离散时间信号及其图形,以及延迟与翻褶的函数变换等。 (二)程序的运行与截图 1)用stem绘制单位阶跃序列u(n) clear all;close all;clc;%清除所有变量 n=0:50;%取值范围 y=(n>=0);%n>=0,y=1;n<0,y=0 stem(n,y);%显示出当0<=n<=50 时,函数u(n)的取值范围 xlabel('n');%对横轴进行注释 ylabel('y=u(n)');%对纵轴进行注释 title('y=u(n)的图形');%对图像的标题进行注释 legend('y=u(n)',2);%对图中曲线进行注释,标注在第二象限 2)用stem绘制单位抽样(冲激)序列δ(n) clear all;close all;clc; %清除所有变量

n=0:50; %取值范围 y=(n==0);%n=0,y=1;n!=0,y=1 stem(n,y);%显示出当0<=n<=50 时,函数δ(n)的取值范围xlabel('n');%对横轴进行注释 ylabel('y=δ(n)');%对纵轴进行注释 title('y=δ(n)的图形');%对图像的标题进行注释 legend('y=δ(n)',2);%对图中曲线进行注释,标注在第二象限

3)用stem绘制矩形序列Rn(n)clear all;close all;clc; %清除所有变量 n=0:50; %取值范围 R10=((n>=0)&(n-9)<=0);%0<=n<=10,y=1;n>10,y=0 stem(n,R10);%显示出当0<=n<=50 时,函数Rn(n)的取值范围xlabel('n');%对横轴进行注释 ylabel(' y=R10(n)');%对纵轴进行注释 title('y=R10(n)的图形');%对图像的标题进行注释 legend('y=R10(n)',2);%对图中曲线进行注释,标注在第二象限

用matlab画分段函数y

例1.用matlab画分段函数y=sin(x), 当y<0时y=0 ;当y>0.8时y=0.8 x=-2:0.1:2; y=0.*(x<0)+sin(x).*(x<=0.8&x>=0)+0.8*(x>0.8); plot(x,y,'r') 例2 高数中的的取整函数y=[x] Ex-1: >> x=0:0.001:4; >> y=0*(x<1&x>=0)+(x<2&x>=1)+2*(x<3&x>=2)+3*(x<4&x>=3); >> plot(x,y,'-r') Ex-2: x=0:0.001:4; y=0*(x<1&x>=0)+(x<2&x>=1)+2*(x<3&x>=2)+3*(x<4&x>=3); k1= find(x==1); k2= find(x==2); k3= find(x==3); k4= find(x==4); plot(x(1:k1-1),y(1:k1-1),'b', x(k1+1:k2-1),y(k1+1:k2-1),'r') hold on plot(x(k2+1:k3-1),y(k2+1:k3-1),'c',x(k3+1:k4-1),y(k3+1:k4-1),'m')

例3 matlab 绘制分段函数x>=1,y=exp(-(x-1)^2); x<1,y=x^2.其中曲线为绿虚线,并进行标注 x=-4:0.01:4; y=(x<1).*(x.^2)+(x>=1).*(exp(-(x-1).^2)); plot(x,y,'b') text(-2,5,'\leftarrow y=x^2','FontSize',9) text(2,0.7,'\leftarrow y=exp(-(x-1)^2)','FontSize',9)

用matlab绘制各种数字信号中的函数-还有分段函数及翻褶-平移

用matlab绘制各种数字信号中的函数-还有分段函数及翻褶-平移

《数字信号处理》 (一)实验目的 使用stem绘图函数分别画出离散时间信号在指定范围内的图形。画图时使用xlabel,ylabel,title,legend等函数进行注释。复习MATLAB的基本应用,如:函数的定义、画图……并巩固理论知识中的多种离散时间信号及其图形,以及延迟与翻褶的函数变换等。 (二)程序的运行与截图 1)用stem绘制单位阶跃序列u(n) clear all;close all;clc;%清除所有变量 n=0:50;%取值范围 y=(n>=0);%n>=0,y=1;n<0,y=0 stem(n,y);%显示出当0<=n<=50 时,函数u(n)的取值范围 xlabel('n');%对横轴进行注释 ylabel('y=u(n)');%对纵轴进行注释 title('y=u(n)的图形');%对图像的标题进行注释legend('y=u(n)',2);%对图中曲线进行注释,标注在第二象限

2)用stem绘制单位抽样(冲激)序列δ(n)clear all;close all;clc; %清除所有变量 n=0:50; %取值范围 y=(n==0);%n=0,y=1;n!=0,y=1 stem(n,y);%显示出当0<=n<=50 时,函数δ(n)的取值范围 xlabel('n');%对横轴进行注释 ylabel('y=δ(n)');%对纵轴进行注释 title('y=δ(n)的图形');%对图像的标题进行注释 legend('y=δ(n)',2);%对图中曲线进行注释,标

matlab 分段函数

f(x)的定义如下: 2226,04()56,010,23 1,x x x x f x x x x x x x x ?+-<≠-?=-+≤<≠≠??--?且且其它 1、写一个函数文件f(x)实现该函数,要求参数x 可以是向量; 2、作出该函数的图形; 3、求出f(x)的零点与最值。 解: (1)、编写M 函数文件 function y=f(x) n=length(x); if x<0 & x~=-4 y=x.^2+x-6; elseif x>=0 & x<10 & x~=2 & x~=3 y=x.^2+5*x+6; else y=x.^2-x-1; end (2)、把文件f.m 放置在搜索路径上 (3)、运行指令 令x=5,则在命令窗口输入指令 y=f(5) 得到答案: y = 56 (2)图形 x1=(-5):0.01:0; y1=x1.^2+x1-6; plot(x1,y1,'m-'); hold on x2=0:0.01:10; y2=x2.^2-5*x2+6; plot(x2,y2,'r:'); hold on x3=10:0.01:15; y3=x3.^2-x3-1; plot(x3,y3); x4=-4; y4=x4.^2-x4-1; plot(x4,y4,'p');

hold on x5=2; y5=x5.^2-x5-1; plot(x5,y5,'b*'); hold on x6=3; y6=x6.^2-x6-1; plot(x6,y6,'g*'); title('函数f(x)的图形'); text(-4,-20,'曲线f1(x)=x^2+x-6'); text(2,40,'曲线f2(x)=x^2-5x+6'); text(10,146,'曲线f3(x)=x^2-x-1'); legend('f1(x)','f2(x)','f3(x)','x=-4','x=2','x=3'); 结果如图: (2)f(x)的零点 ①当x<0 & x~=-4时; f1(x)=x.^2+x-6; 由函数的系数矩阵可得函数的根,即: >> p1=[1,1,-6]; >> x1=roots(p1); x1 =

MATLAB在分段函数的应用要点

《MATLAB语言》课程论文 MATLAB在分段函数的应用 姓名:万治邦 学号:12010245309 专业:通信工程 班级:2010级 指导老师:汤全武 学物理院:电气信息学院 完成日期:2011年11月28日

MATLAB 在分段函数中的应用 ( 万治邦 12010245309 2010级通信工程1班) [摘要]在数学中有很多关于分段函数的知识,我们通常所学的,也只是一些简单分段函数。当遇上一 些多元多次线性方程组时,想要求解,是非常困难的。利用MATLAB编程语言就可以实现对一些复杂的分段喊数进行求解。将MATLAB 语言运用到我们的学习中,就可以使我们对这方面的知识进行获取时简便起来。 [关键词]数学 分段函数 MATLAB 语言 图形绘制 一、问题的提出 MATLAB 语言作为一种简便实用的程序语言,将它的简便易操作运用到学习和教学中,会极大地简化学习中的复杂问题,这样就可以将我们从复杂的公式计算中解脱出来。MATLAB 提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、便捷的与其他程序和语言接口的功能.将MATLAB 语言与数学结合起来,这无疑会弥补数学的复杂计算所带来的问题。 二、数学分段函数中的应用 1、 分析一元二次函数分段函数的特性 利用MATLAB 解决一些数学中常见的分段函数性质问题,这样将MATLAB 和数学结合起来可以提高学习效率,加深对函数的理解。下面我们就讨论利用MATLAB 程序求解分段函数性质问题。 问题一、定义分段函数下面 分段函数 ? ? ?<+--≥-=0)ln(0 )sin(32)(2x x x x x x x f MATLAB 程序如下: function y=f(x) %定义函数 y=zeros(size(x)); %产生与矩阵X 同样大小的零矩阵 [m n]=size(x); %定义矩阵 for a=1:m %矩阵宽度 for b=1:n %矩阵长度 if x(a,b)<0 %选择结构 y(a,b)=log(-x(a,b))+x(a,b); else y(a,b)=2*x(a,b)^2-3*sin(x(a,b)); %选择结构 end %结束if 语句 end %结束for 语句 end %结束for 语句 问题二:简单的绘图 MATLAB 程序如下: x1=0:0.01:1;%设置x1的变换范围 x2=1:0.01:2;%设置x1的变换范围 y1=x1;%定义y1

教你如何用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向量即可输出曲线:

用matlab画分段函数

用Matlab画分段函数 例1 用matlab画分段函数y=sin(x), 当y<0时y=0 ;当y>0.8时y=0.8 x=-2:0.1:2; y=0.*(x<0)+sin(x).*(x<=0.8&x>=0)+0.8*(x>0.8); plot(x,y,'r') 例2 高数中的的取整函数y=[x] Ex-1: >> x=0:0.001:4; >> y=0*(x<1&x>=0)+(x<2&x>=1)+2*(x<3&x>=2)+3*(x<4&x>=3); >> plot(x,y,'-r') Ex-2: x=0:0.001:4; y=0*(x<1&x>=0)+(x<2&x>=1)+2*(x<3&x>=2)+3*(x<4&x>=3); k1= find(x==1); k2= find(x==2); k3= find(x==3); k4= find(x==4); plot(x(1:k1-1),y(1:k1-1),'b', x(k1+1:k2-1),y(k1+1:k2-1),'r') hold on plot(x(k2+1:k3-1),y(k2+1:k3-1),'c',x(k3+1:k4-1),y(k3+1:k4-1),'m') hold off

例3 matlab 绘制分段函数x>=1,y=exp(-(x-1)^2); x<1,y=x^2.其中曲线为绿虚线,并进行标注 x=-4:0.01:4; y=(x<1).*(x.^2)+(x>=1).*(exp(-(x-1).^2)); plot(x,y,'b') text(-2,5,'\leftarrow y=x^2','FontSize',9) text(2,0.7,'\leftarrow y=exp(-(x-1)^2)','FontSize',9)

matlab完成分段函数的灰度变换

图像反转程序: I=imread('pout.tif'); JJ=imadjust(I,[0 1],[1 0]); imshow(JJ,[]); figure; imshow(I,[]); 对数变换程序: I=imread('pout.tif'); imshow(I); Image=log(1+double(I)); figure(2),imshow(I,[]) 伽马变换程序: A=imread('pout.tif'); x=0:255; a=90,b=1.5,c=0.008;

B=b.^(c.*(double(A)-a))-1; y=b.^(c.*(x-a))-1; subplot(2,2,1) imshow(A) subplot(2,2,2) imhist(A) subplot(2,2,3) imshow(B) subplot(2,2,4) imhist(B) figure,plot(x,y) 分段线性变换程序: b=imread('pout.tif');

f0=0;g0=0; f1=10;g1=30; f2=220;g2=180; f3=255;g3=255; figure,plot([f0,f1,f2,f3],[g0,g1,g2,g3]); r1=(g1-g0)/(f1-f0); b1=-r1*f0+g0; r2=(g2-g1)/(f2-f1); b2=-r2*f1+g1; r3=(g3-g2)/(f3-f2); b3=-r3*f2+g2; axis([0 255 0 255]); [m,n]=size(b); h=double(b); figure,imshow(mat2gray(h)); for i=1:m for j=1:n t=h(i,j); g(i,j)=0; if((t>=f0)&&(t<=f1)) g(i,j)=r1*t+b1; else if((t>=f1)&&(t<=f2)) g(i,j)=r2*t+b2; else if((t>=f2)&&(t<=f3)) g(i,j)=r3*t+b3; end end end figure,imshow(mat2gray(g));

MATLAB中bode图绘制技巧

Matlab中Bode图的绘制技巧 学术收藏 2010-06-04 21:21:48 阅读54 评论0 字号:大中小订阅 我们经常会遇到使用Matlab画伯德图的情况,可能我们我们都知道bode这个函数是用来画bode图的,这个函数是Matlab内部提供的一个函数,我们可以很方便的用它来画伯德图,但是对于初学者来说,可能用起来就没有那么方便了。 譬如我们要画出下面这个传递函数的伯德图: 1.576e010 s^2 H(s)= ------------------------------------------------------------------------------------------ s^4 + 1.775e005 s^3 + 1.579e010 s^2 + 2.804e012 s + 2.494e014 (这是一个用butter函数产生的2阶的,频率范围为[20 20K]HZ的带通滤波器。) 我们可以用下面的语句: num=[1.576e010 0 0]; den=[1 1.775e005 1.579e010 2.804e012 2.494e014]; H=tf(num,den); bode(H) 这样,我们就可以得到以下的伯德图: 可能我们会对这个图很不满意,第一,它的横坐标是rad/s,而我们一般希望横坐标是HZ;第二,横坐标的范围让我们看起来很不爽;第三,网格没有打开(这点当然我们可以通过在后面加上grid on解决)。

下面,我们来看看如何定制我们自己的伯德图风格: 在命令窗口中输入:bodeoptions 我们可以看到以下内容: ans = Title: [1x1 struct] XLabel: [1x1 struct] YLabel: [1x1 struct] TickLabel: [1x1 struct] Grid: 'off' XLim: {[1 10]} XLimMode: {'auto'} YLim: {[1 10]} YLimMode: {'auto'} IOGrouping: 'none' InputLabels: [1x1 struct] OutputLabels: [1x1 struct] InputVisible: {'on'} OutputVisible: {'on'} FreqUnits: 'rad/sec' FreqScale: 'log' MagUnits: 'dB' MagScale: 'linear' MagVisible: 'on' MagLowerLimMode: 'auto' MagLowerLim: 0 PhaseUnits: 'deg' PhaseVisible: 'on' PhaseWrapping: 'off' PhaseMatching: 'off' PhaseMatchingFreq: 0 PhaseMatchingValue: 0 我们可以通过修改上面的每一项修改伯德图的风格,比如我们使用下面的语句画我们的伯德图: P=bodeoptions; P.Grid='on'; P.XLim={[10 40000]}; P.XLimMode={'manual'}; P.FreqUnits='HZ'; num=[1.576e010 0 0]; den=[1 1.775e005 1.579e010 2.804e012 2.494e014]; H=tf(num,den); bode(H,P) 这时,我们将会看到以下的伯德图:

MATLAB画图(三种)

MATLAB画图 1、plot(描点画图) 1)给点列、计算函数值、作图 >>x=0:0.000001:2*pi; >>y=sin(x); >>plot(x,y) 2)选择线性和标记属性 plot(x,y,string) string为用单引号括起来的字符串,用来指定 图形的属性(点线的形状和颜色)。 >>plot(x,sin(x),'r+:') (红色虚线离散点用+) >>plot(x,sin(x),'b-d') (蓝色点划线离散点用◇) >>plot(x,sin(x),'k*-') (黑色实线离散点用*) *上述三种任意排列,点越密集线条越粗。 3)给图形添加注释 >>plot(x,y) >>title('sin(x)图像')——标题 >>xlabel('x轴')——坐标轴 >>ylabel('y轴')——坐标轴 >>legend('y=sin(x)')——注释 >>text(pi/2,1,'最高点') *plot是描点画图,有间断点的函数图像画不出来(如tan(x)。 >>x=1:pi/100:2; >>y=2*exp(-0.5*x).*cos(4*pi*x); >>plot(x,y) >>x=1:0.5:9; >>y=3.^x; >>plot(x,y) 2、同时画两个图像 1)>>x=0:0.01:2*pi; >>y=sin(x); >>z=cos(x); >>plot(x,y,'r+:',x,z,'-.bd')

2)>>x=0:0.0001:2*pi; >>y=sin(x); >>plot(x,y) >>hold on >>z=cos(x); >>plot(x,z) *一旦键入hold on之后,所有图像都会留在figure界面,只有键入hold off后才可消失。且hold on对一切画图函数可用。 3、一个figure里面分割成好几个独立图像 >>x=-2*pi:0.0001:2*pi; >>subplot(2,2,1);plot(x,sin(x)) >>subplot(2,2,2);plot(x,cos(x)) >>subplot(2,2,3);plot(x,exp(x)) >>subplot(2,2,4);plot(x,x.^2) 4、fplot fplot(‘fun’,lims) 表示绘制字符串fun指定的函数在 lims=[xmin,xmax]的图像。 *fun必须是m文件的函数名或者独立 变量x的字符串; fplot函数不能画参数方程、隐函数 及间断点函数图像,但在一个图上可 以画多个图形。 >>fplot('sin',[-pi,pi]) >>fplot('cos',[-pi,pi]) 4、ezplot 1)ezplot('f(x)',[a,b]) 表示绘制f(x)在[a,b]上的函数图像 2)ezplot('f(x)',[xmin,xmax,ymin,ymax]) 表示绘制隐函数f(x,y)=0在xmin>ezplot('cos(x)',[-pi,pi]) >>ezplot('cos(t)^3','sin(t)^3',[0,2*pi]) >>ezplot('exp(x)+sin(x*y)',[-2,0.5,0,2])

分段函数的matlab作图

MATLAB 分段函数绘图 1.一元分段函数绘图 例如: 把下面的函数保存为Piecewise_x.m文件 function F=Piecewise_x(x) F=x.^2.*(x>=0 & x<1)+cos(pi*(x-1)).*(x>=1 & x<2)+(-x.^2./(x+2)).*(x>=2 & x<=4); end 运行: x=linspace(0,4); F=Piecewise_x(x);%计算相应函数值 plot(x,F);%绘制曲线 hold on; plot(1*ones(1,2),ylim,'r:');%画区间间隔线 plot(2*ones(1,2),ylim,'r:');%画区间间隔线 一元分段函数图 2.二元分段函数绘图 例如:

把下面的函数保存为Piecewise_xy.m文件 function Pxy=Piecewise_xy(x,y) Pxy=0.5457*exp(-0.75*y^2 - 3.75*x^2 - 1.5*x).*(x+y>1)+... 0.7575*exp(-y^2 - 6*x^2).*(x+y>-1)+... 0.5457*exp(-0.75*y^2 - 3.75*x^2 + 1.5*x).*(x+y<=-1); end 运行: [x,y]=meshgrid(-3:0.1:3); s=size(x) Pxy=zeros(s(1),s(2)); for i=1:s(1) for j=1:s(2) Pxy(i,j)=Piecewise_xy(x(i,j),y(i,j)); end end mesh(x,y,Pxy) 二元分段函数图

Matlab考试题库+答案

填空题 1、标点符号; %—用来表示该行为注释行。可以使命令行不显示运算结果, 2、x为0~4pi,步长为0.1pi的向量,使用命令 x=0:0.1*pi:4*pi创建。 3、输入矩阵A=,使用全下标方式用A(2,2)取出元素“-5”,使用单下标方 式用A(5)取出元素“-5”。 4、符号表达式sin(2*a+t)+m中独立的符号变量为t。 5、M脚本文件和M函数文件的主要区别是M脚本文件没有函数定义和M函数文件有函数定义_______。 6. 设x是一维数组,x的倒数第3个元素表示为x(_end-2_) 设y为二维数组,要删除y的第34行和48列,可使用命令y(34,:)=[] ; y(:,48)=[]; 7. 将变量x以Ascii文本格式存储到文件fname.txt,应使用命令save _x ; 8. 在while 表达式, 语句体, End 循环语句中,表达式的值非零时表示循环条件为真,语句体将被执行,否则跳出该循环语句; 9.要从键盘读入一个字符串并赋值给变量x,且给出提示“Who is she?”,应使用命令x=input(…Who is she??,?s?); 10.设A=和B=和C=均为m*n矩阵,且存在于WorkSpace中,要产生矩阵D=,可用命令D=(A-C)/B.^C, 计算可用命令det(inv(A?*B) 11. 在MATLAB命令窗口中的“>>”标志为MATLAB的命令行提示符,“│”标志为输入提示符。 12.已知A=[1 2 3;4 5 0;7 8 9];B=[1 0 3;1 5 0;0 1 2];写出下列各指令运行的结果。 A+B; A.*B; A==B ; ans= [2,2,6;5,10,0;7,9,11] ans= [1,0,9;4,25,0;0,8,18] ans= [1,0,1;0,1,1;0,0,0] 13.已知A是矩阵,求A的对角矩阵函数是 diag ; 求A的下三角矩阵函数是 tril。 14.MATLAB的程序文件和Simulink模型文件的扩展名分别是.m、.mdl 15.MATLAB最基本的绘图函数为plot() 16. A=[1,2,3;4,5,6]; A(:,[1,3])=[];A= [2;5] 17. fix(-1.5)= -1 , round(-1.5)= -2 .

相关主题