MATLAB在分段函数的应用要点

MATLAB在分段函数的应用要点
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

y2=2-x2;%定义y2 x=[x1,x2];%定义x 矩阵 y=[y1,y2];%定义y 矩阵

plot(x,y)%绘制关于x 、y 的曲线

运行结果如图1所示

图1

问题三、一元二次分段函数的MATLAB 实现

)(x f 定义如下

??

???--≠≠≤≤+-≠<-+=其他且且,13

2,100,6540,6)(22

2x x x x x x x x x x x x f

1、写出一个函数文件实现该函数

2、做出函数图形

3、求)(x f 的零点与最值 解:

1、函数文件实现该函数 编写M 函数文件

function y=f(x) %定义分段函数 n=length(x) %设置X 的取值范围 if x<0&x~4 %选择结构 y=x.^2+x-6;

else if x>=&x<10&x~=2&x~3 %选择结构

y=x.^2+5*x+6;

else

y=x.^2-x-1;

end%结束if语句

把文件f.m放置在搜索路径上

运行命令:

令x=5,则在命令窗口输入指令

y=f(5)

得到答案:

y=

56

2、图形

MATLAB程序如下:

x1=(-5):0.01:0; %设置X1的取值变化

y1=x1.^2+x1-6; %定义函数f1(x)

plot(x1,y1,'m-'); %y1的平面线图

hold on %设置图形保持状态

x2=0:0.01:10; %设置X2的取值变化

y2=x2.^2-5*x2+6; %定义函数f2(x)

plot(x2,y2,'r:'); %y2的平面线图

hold on %设置图形保持状态

x3=10:0.01:15; %设置X3的取值变化

y3=x3.^2-x3-1; %定义函数f3(x)

plot(x3,y3); %y3的平面线图

x4=-4; %设置X4的值

y4=x4.^2-x4-1; %定义函数f4(x)

plot(x4,y4,'p'); %y4的平面线图

hold on %设置图形保持状态

x5=2; %设置X5的值

y5=x5.^2-x5-1; %定义函数y5

plot(x5,y5,'b*') %y5的平面线图

hold on %设置图形保持状态

x6=3; %设置X6的值

y6=x6.^2-x6-1; %定义函数y6

plot(x6,y6,'g*'); %y6的平面线图

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=2','x=3');%加图例

运行结果如图2所示

图2

3、)(x f 的零点和最值

)(x f 的零点

当4~&0-=

由函数的系数矩阵可得函数的根,即: pl=[1,1,-6];

x1=roots(pl); x 1= -3 2

由题意可知,x 的取值范围在)0,(-∞,所以21=x 舍去,即)(x f 的零点之一为

31-=x .

当3~&2~&10&0==<>=x x x x 时;

6*52.^)(2++=x x x f

由函数的系数矩阵可得函数的根,即 p2=[1,-5,6];

x2=roots(p2); x2=

3.0000

2.0000

因为没有零点所以)(23~&2~x f x x ==

当3&2&4&10==-=>=x x x x 时 ;12.^)(3--=x x x f

由函数的系数矩阵可得函数的根,即: p3=[1,-1,-1];

x2=roots(p3); X2= 1.6180 -0.6180

有题意可知,)(x f 在定义域内没有零点。

综上所述,)(x f 在定义域内只有一个零点,即3-=x .

)(x f 的最小值

如图1所示,)(x f 在定义域内之存在一个最小值,且处于最左段函数图形

'62^)(1'-+=x x x f 曲线上,即当0

x(l)=fminbnd('x(l).^2+x(l)-6',-5,0)

y1=x(l).^2+x(l)-6 x=

-0.5000 y1=

-6.2500

所以函数)(x f 最小值为5.6)5.0(-=-f .

通过以上程序对一元二次分段函数的讨论,学会了能用MATLAB 实现对函数的性质问

题求解。下面进一步讨论利用在MATLAB 函数文件绘制分段函数图形问题。

四、在函数文件下绘制分段函数图形

将MATLAB 强大的绘图功能应用到数学图形的绘制上,当遇到一些复杂的函数图形时 ,

就可以很好地解决图形绘制难的问题。这样我们在数学函数和图形的时候就可以有一个直观的参考,而MATLAB 绘图功能的操作简单、功能强大就简化了一些复杂的操作。下面我们就讨论有关利用MATLAB 程序绘图的问题。 1一元分段函数的图形绘制

问题四、用MATLAB 绘制分段函数??

?

??<≤+-<≤-<≤=42),2/(2

1)),1(cos(10,)(22x x x x x x x x f π图像

MATLAB程序如下:

把下面的函数保存为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:');%画区间间隔线

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:');%画区间间间隔线

运行结果如图3

图3 分段函数图

2、二元二次分段函数函数的MATLAB绘图

问题五:函数??

?

??-<=++--<=+<--->+---=1),*5.175.3*75.0exp(*5457.01

1),*6exp(*7575.01),*5.1*75.3*75.0exp(*5457.0),(222222y x x x y y x x y y x x x y y x p 的图

形绘制

MATLAB 程序如下:

把下面的函数保存为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));%定义矩阵x 是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)%定义网线图

运行结果如图

4

图4

问题七、绘制分段函数图形 MATLAB 程序如下:

Clear %清除内存变量和函数

clc; %清楚指令窗

x=0:0.01:1; %定义x的取值范围

n=length(x); %加图例

y=zeros(1,n); %产生1n零矩阵

for i=1:101

if x(i)<=0.25

y(i)=100*x(i).^2;

else if x(i)<=0.5

y(i)=100*x(i).*(1-x(i))-12.5;

else

y(i)=x(i).*(1-x(i));

end

end

end

Figure %创建图形窗口

plot(x,y); %绘制关于x,y的曲线

运行结果如图5所示

图5

通过以上利用MATLAB绘图功能绘制分段函数图形问题的讨论,我们就会在此基础上加深对MATLAB强大功能的认识,在利用MATLAB解决其他问题时就有了实际的参考,下面就对物理中的分段函数问题结合MATLAB程序语言进行解决。

五、物理学中分段函数的应用

物理中经常会遇到一些复杂的分段函数图形,如果利用手工绘制或其他的绘制图形方式时,难免会造成图形与实际的偏差。这样在观察图形获取图形参数时就会造成不必要的误差。下面我们就讨论物理学中复杂分段函数利用MATLAB程序语言绘制图形的问题问题八、两个分段函数的MATLAB实现

MATLAB程序如下:

clear;%清除内存变量和函数

t=0:0.01:18;%设置t的变化范围

d1=zeros(size(t));%定义d1是矩阵t同样大小的零矩阵

d2=zeros(size(t));%定义d2是矩阵t同样大小的零矩阵

N=length(t); %加图例

for i=1:N

if 0<=mod(t(i),6) & mod(t(i),6)<3

d1(i)=-(400/27)*(1/4*(mod(fix(t(i)),6)+t(i)-fix(t(i))).^4-2*(mod(fix(t(i)),6)+ t(i)-fix(t(i))).^3+(9/2)*(mod(fix(t(i)),6)+t(i)-fix(t(i))).^2);

else

d2(i)=(100/6.75)*(1/4*(mod(fix(t(i)),6)+t(i)-fix(t(i))).^4-5*(mod(fix(t(i)),6) +t(i)-fix(t(i))).^3+36*(mod(fix(t(i)),6)+t(i)-fix(t(i))).^2-108*(mod(fix(t(i)) ,6)+t(i)-fix(t(i)))+108);

end

end

d=d1+d2;%定义d的表达式

plot(t,d);%绘制关于t,d的曲线

xlabel('t');%加x轴说明

ylabel('d'); %加y轴说明

grid on; %命令画网络线

运行结果如图6所示

图6

MATLAB程序如下:

clear; %清除内存变量和函数

t=0:0.01:12; %设置t的变化范围

d1=zeros(size(t)); %定义d1是矩阵t同样大小的零矩阵

d2=zeros(size(t)); %定义d2是矩阵t同样大小的零矩阵

d3=zeros(size(t)); %定义d3是矩阵t同样大小的零矩阵

N=length(t); %加图例

for i=1:N

if0<=mod(t(i),3)&mod(t(i),3)<=1

d1(i)=-139*(3*(mod(fix(t(i)),3)+t(i)-fix(t(i))).^4-8*(mod(fix(t(i)),3)+t(i)-fi x(t(i))).^3+6*(mod(fix(t(i)),3)+t(i)-fix(t(i))).^2);

elseif 1<2

d2(i)=-139;

else

d3(i)=139*(3*(mod(fix(t(i)),3)+t(i)-fix(t(i))).^4-32*(mod(fix(t(i)),3)+t(i)-fi x(t(i))).^3+126*(mod(fix(t(i)),3)+t(i)-fix(t(i))).^2-216*(mod(fix(t(i)),3)+t(i )-fix(t(i)))+135);

end%结束if语句

end%结束for语句

d=d1+d2+d3 ;%定义d的表达式

plot(t,d); %绘制关于t,d的曲线

xlabel('t'); %加x轴说明

ylabel('d'); %加y轴说明

grid on; %命令画网络线

运行结果如图7所示

图7

以上我们讨论了利用MATLAB程序语言绘制物理学中复杂的分段函数问题,进一步加深了对MATLAB程序语言的认识。同时也找到了一个很实用的学习工具。

四、结论

将MATLAB语言和数学知识的结合,可以简化数学知识中的一些复杂、抽象的问题。利用MATLAB强大的绘图功能,将一些复杂函数的图像绘制出来,不仅可以直观的了解函数,并且可以加深对函数的理解。由于MATLAB运算结果用二维图形显示的,使得学习效果生动和鲜明,可以加深我们对课本知识的理解,找出自己解题错误的原因,同时由于有了直观印象,也加深了记忆。利用MATLAB语言我们在求解函数问题时不止可以画图,MATLAB里很多函数都可以进行数值的计算、处理,只需编辑相应MATLAB的程序,通过对函数的计算,就可以对函数的性质进行计算。同时可以达到数形结合的效果使问题更简单化。总而言之,在数学函数分析的问题上利用MATLAB语言绘制图形就是简单最具有可视化的方法,MATLAB 绘图及其他功能将在数学上有很大的帮助作用。

五、课程体会

经过一学期紧张而有序的课程学习,在忙碌之余也得到了颇多的收获。我深深体会到MATLAB语言相对于同类程序语言更方便更简洁易懂。此外,在过去的学习中,老师通过让我们完成每章的习题检验我们的学习情况,使我认识到了MATLAB的优点。如果借助MATLAB 工具,让我们做一些习题,写一些论文,也有助于培养我们用计算机解决问题的能力。通过利用其解决这些数学问题,让我更进一步认识到了MATLAB的强大功能,也让我又一次认识到掌握了最基础的知识才是最根本的,复杂的知识都是在一个个基础的知识的堆积,抓住了基础,再难的问题都可以拆解开来简化处理,都能够很快地掌握。在查阅资料的过程中,发现MATLAB绘图功能已经广泛运用到数学的各个领域,用MATLAB绘制的图形更然人感

到其妙。所以以后要好好学习MATLAB语言。

[参考文献]

[1] 刘卫国.MATLAB程序设计与应用(第二版)[M].北京:高等教育出版社,2006.

[2] 同济大学数学系.高等数学(第六版)[M]北京:高等教育出版社,2007.6

关于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绘制二维函数图形 姓名:海燕 学号: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考试题库+答案(中北大学)

1、标点符号; _______可以使命令行不显示运算结果, %——用来表示该行为注释行。 2、x为0~4pi,步长为0.1pi的向量,使用命令_______创建。 x=0:0.1*pi:4*pi 3、输入矩阵A=,使用全下标方式用A(2,2) 取出元素“-5”,使用单下标方式用_______取出元素“-5”。 A(5) 4、符号表达式sin(2*a+t)+m中独立的符号变量为_______。 t 5、M脚本文件和M函数文件的主要区别是M脚本文件没有函数定义和M函数文件有函数定义_______。 6. 设x是一维数组,x的倒数第3个元素表示为_______; 设y为二维数组,要删除y的第34行和48列,可使用命令_______; _______; x(_end-2_) 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的对角矩阵函数是_______, 求A的下三角矩阵函数是_______。 diag 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)=___ ________, round(-1.5)=__ _______________. -1 -2

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使用指导(2012)

一、基础知识 1.1 常见数学函数 如:输入x=[-4.85 -2.3 -0.2 1.3 4.56 6.75],则: ceil(x)= -4 -2 0 2 5 7 fix(x) = -4 -2 0 1 4 6 floor(x) = -5 -3 -1 1 4 6 round(x) = -5 -2 0 1 5 7 1.2 系统的在线帮助 1 help 命令: 1.当不知系统有何帮助内容时,可直接输入help以寻求帮助: >>help(回车) 2.当想了解某一主题的内容时,如输入: >> help syntax(了解Matlab的语法规定) 3.当想了解某一具体的函数或命令的帮助信息时,如输入: >> help sqrt (了解函数sqrt的相关信息)

2 lookfor命令 现需要完成某一具体操作,不知有何命令或函数可以完成,如输入: >> lookfor line (查找与直线、线性问题有关的函数) 1.3 常量与变量 系统的变量命名规则:变量名区分字母大小写;变量名必须以字母打头,其后可以是任意字母,数字,或下划线的组合。此外,系统内部预先定义了几个有特殊意 1 数值型向量(矩阵)的输入 1.任何矩阵(向量),可以直接按行方式 ...输入每个元素:同一行中的元素用逗号(,)或者用空格符来分隔;行与行之间用分号(;)分隔。所有元素处于一方括号([ ])内; 例1: >> Time = [11 12 1 2 3 4 5 6 7 8 9 10] >> X_Data = [2.32 3.43;4.37 5.98] 2

上面函数的具体用法,可以用帮助命令help得到。如help zeros,可查到zeros的具体用法。 例:meshgrid(x,y) 输入x=[1 2 3 4]; y=[1 0 5]; [X,Y]=meshgrid(x, y),则 X = Y = 1 2 3 4 1 1 1 1 1 2 3 4 0 0 0 0 1 2 3 4 5 5 5 5 目的是将原始数据x,y转化为矩阵数据X,Y。 2 符号向量(矩阵)的输入 1.用函数sym定义符号矩阵: 函数sym实际是在定义一个符号表达式,这时的符号矩阵中的元素可以是任何的符号或者是表达式,而且长度没有限制。只需将方括号置于单引号中。 例2: >> sym_matrix = sym('[a b c;Jack Help_Me NO_WAY]') sym_matrix = [ a, b, c] [Jack, Help_Me, NO_WAY] 2.用函数syms定义符号矩阵 先定义矩阵中的每一个元素为一个符号变量,而后像普通矩阵一样输入符号矩阵。 例3: >> syms a b c ; >> M1 = sym('Classical'); >> M2 = sym(' Jazz'); >> M3 = sym('Blues'); >> A = [a b c;M1,M2,M3;sym([2 3 5])] A = [ a, b, c] [Classical, Jazz, Blues] [ 2, 3, 5]

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 工作环境熟悉及简单命令的执行 一、实验目的:熟悉MATLAB 的工作环境,学会使用MATLAB 进行一些简单的运算。 二、实验内容:MATLAB 的启动和退出,熟悉MATLAB 的桌面(Desktop ),包括菜单 (Menu )、工具条 (Toolbar )、命令窗口(Command Window)、历史命令窗口、工作 空间(Workspace)等;完成一些基本的矩阵操作;学习使用在线帮助系统。 三、实验步骤: 1、启动MATLAB ,熟悉MATLAB 的桌面。 2、在命令窗口执行命令完成以下运算,观察workspace 的变化,记录运算结果。 (1)(365-52?2-70)÷3 >>(365-52*2-70)/3 ans = 63.6667 (2)>>area=pi*2.5^2 area = 19.6350 (3)已知x=3,y=4,在MATLAB 中求z : () 2 3 2y x y x z -= >>x=3 >>y=4 >>z = x ^2 * y ^3 / (x - y) ^2 z = 576 (4)将下面的矩阵赋值给变量m1,在workspace 中察看m1在内存中占用的字节数。 m1=???? ? ???? ???11514412679810115133216 执行以下命令 >>m1 =[16 2 3 13 ; 5 11 10 8 ; 9 7 6 12 ; 4 14 15 1 ] >>m1( 2 , 3 ) ans = 10 >>m1( 11 ) ans = 6 >>m1( : , 3 ) ans =3 10 6 15 >>m1( 2 : 3 , 1 : 3 ) ans =5 11 10 9 7 6 >>m1( 1 ,4 ) + m1( 2 ,3 ) + m1( 3 ,2 ) + m1( 4 ,1) ans = 34 (5)执行命令>>help abs

用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考试题库+答案(中北大学)

%——用来表示该行为注释行。 2、x 为0~4pi,步长为的向量,使用命令_______创建。 x=0:*pi:4*pi 3、输入矩阵A=,使用全下标方式用A(2,2) 取出元素“-5”,使用单下标方式用_______取出元素“-5”。 A(5) 4、符号表达式sin(2*a+t)+m中独立的符号变量为_______。 t 5、M脚本文件和M函数文件的主要区别是M脚本文件没有函数定义和M函数文件有函数定义_______。 6. 设x是一维数组,x的倒数第3个元素表示为_______; 设y为二维数组,要删除y的第34行和48列,可使用命令_______; _______; x(_end-2_) y(34,:)=[] y(:,48)=[] 7. 将变量x以Ascii文本格式存储到文件,应使用命令_________ _; 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的对角矩阵函数是_______, 求A的下三角矩阵函数是_______。 diag tril 的程序文件和Simulink模型文件的扩展名分别是_______、。 .m .mdl 最基本的绘图函数为_______。 plot() 16. A=[1,2,3;4,5,6]; A(:,[1,3])=[];A=__________________ [2;5] 17. fix=___ ________, round=__ _______________. -1 -2 18.已知A=[1 3;4 6];C=[A,eye(size(A));A ,ones(size(A))] 则C=_____________.

用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));

相关文档
最新文档