matlab地循环语句和常用函数解析汇报.docx

上传人:b****1 文档编号:14814722 上传时间:2023-06-27 格式:DOCX 页数:41 大小:35.68KB
下载 相关 举报
matlab地循环语句和常用函数解析汇报.docx_第1页
第1页 / 共41页
matlab地循环语句和常用函数解析汇报.docx_第2页
第2页 / 共41页
matlab地循环语句和常用函数解析汇报.docx_第3页
第3页 / 共41页
matlab地循环语句和常用函数解析汇报.docx_第4页
第4页 / 共41页
matlab地循环语句和常用函数解析汇报.docx_第5页
第5页 / 共41页
matlab地循环语句和常用函数解析汇报.docx_第6页
第6页 / 共41页
matlab地循环语句和常用函数解析汇报.docx_第7页
第7页 / 共41页
matlab地循环语句和常用函数解析汇报.docx_第8页
第8页 / 共41页
matlab地循环语句和常用函数解析汇报.docx_第9页
第9页 / 共41页
matlab地循环语句和常用函数解析汇报.docx_第10页
第10页 / 共41页
matlab地循环语句和常用函数解析汇报.docx_第11页
第11页 / 共41页
matlab地循环语句和常用函数解析汇报.docx_第12页
第12页 / 共41页
matlab地循环语句和常用函数解析汇报.docx_第13页
第13页 / 共41页
matlab地循环语句和常用函数解析汇报.docx_第14页
第14页 / 共41页
matlab地循环语句和常用函数解析汇报.docx_第15页
第15页 / 共41页
matlab地循环语句和常用函数解析汇报.docx_第16页
第16页 / 共41页
matlab地循环语句和常用函数解析汇报.docx_第17页
第17页 / 共41页
matlab地循环语句和常用函数解析汇报.docx_第18页
第18页 / 共41页
matlab地循环语句和常用函数解析汇报.docx_第19页
第19页 / 共41页
matlab地循环语句和常用函数解析汇报.docx_第20页
第20页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

matlab地循环语句和常用函数解析汇报.docx

《matlab地循环语句和常用函数解析汇报.docx》由会员分享,可在线阅读,更多相关《matlab地循环语句和常用函数解析汇报.docx(41页珍藏版)》请在冰点文库上搜索。

matlab地循环语句和常用函数解析汇报.docx

matlab地循环语句和常用函数解析汇报

 

 matlab基本语句

1.循环语句for

for  i=s1:

s3:

s2

    循环语句组

end

解释:

首先给i赋值s1;然后,判断i是否介于s1与s2之间;如果是,则执行循环语句组,i=i+s3(否则,退出循环.);执行完毕后,继续下一次循环。

例:

求1到100的和,可以编程如下:

   sum=0

   for i=1:

1:

100

     sum=sum+i

   end

   这个程序也可以用while语句编程。

   

   注:

for循环可以通过break语句结束整个for循环.

2.循环语句while

  例:

sum=0;i=1;

      while(i<=100)

       sum=sum+i;i=i+1;

      end

      

3.if语句

  if(条件)

    语句

  end

  

  if(条件)

    语句

  else

    语句

  end

  if(条件)

    语句

  elseif

    语句

  end

  

  

4.关系表达式:

 =,>,<,>=,<=,==(精确等于)

5.逻辑表达式:

|(或),&(且)

6.[n,m]=size(A)(A为矩阵)

这样可以得到矩阵A的行和列数

n=length(A),可以得到向量A的分量个数;如果是矩阵,则得到矩阵A的行与列数这两个数字中的最大值。

7.!

后面接Dos命令可以调用运行一个dos程序。

8.常见函数:

poly():

为求矩阵的特征多项式的函数,得到的为特征多项式的各个系数。

如a=[1,0,0;0,2,0;0,0,3],则poly(a)=1    -6    11    -6。

相当于poly(a)=1入^3+(-6)入^2+11入+(-6)。

compan():

可以求矩阵的伴随矩阵.

sin()等三角函数。

MATLAB在数学建模中的应用(3)

 

  一、程序设计概述

  MATLAB所提供的程序设计语言是一种被称为第四代编程语言的高级程序设计语言,其程序简洁,可读性很强,容易调试。

同时,MATLAB的编程效率比C/C++语言要高得多。

  MATLAB编程环境有很多。

常用的有:

  1. 命令窗口

  2. word窗口

  3. M-文件编辑器,这是最好的编程环境。

  M-文件的扩展名为“.m”。

M-文件的格式分为两种:

  ①M-脚本文件,也可称为“命令文件”。

  ② M-函数文件。

这是matlab程序设计的主流。

   保存后的文件可以随时调用。

   二、MATLAB程序结构

  按照现代程序设计的观点,任何算法功能都可以通过三种基本程序结构来实现,这三种结构是:

顺序结构、选择结构和循环结构。

其中顺序结构是最基本的结构,它依照语句的自然顺序逐条地执行程序的各条语句。

如果要根据输入数据的实际情况进行逻辑判断,对不同的结果进行不同的处理,可以使用选择结构。

如果需要反复执行某些程序段落,可以使用循环结构。

  1  顺序结构

顺序结构是由两个程序模块串接构成。

一个程序模块是完成一项独立功能的逻辑单元,它可以是一段程序、一个函数,或者是一条语句。

 

  看图可知,在顺序结构中,这两个程序模块是顺序执行的,即先执行<程序模块1>,然后执行<程序模块2>。

实现顺序结构的方法非常简单,只需将程序语句顺序排列即可。

2  选择结构

  在MATLAB中,选择结构可由两种语句来实现。

  

(1)  if语句

  if语句的最简单用法为:

    if  表达式;

     程序模块;

    end

  if语句的另一种用法为:

    if  表达式

     程序模块1

    else

     程序模块2

    end

  例1  使用if语句判断学生的成绩是否及格。

  程序:

   clear  

   n=input(’输入n= ’)  

   m=60;

   if  n<m,

r=’不及格’

        else

        r=’及格’

   end

   练习一:

将例1写入M-文件编辑器,然后在command window 调用这个程序。

   当针对多个条件进行选择时,可以采用下面的格式:

    if 表达式1 

        程序模块1

         elseif  表达式2 

                 程序模块2

           ……   ……

            elseif  表达式n

                    程序模块n 

        else  

           程序模块n+1

       end

  例2  将百分之的学生成绩转换为五分制输出。

  程序:

 clear

 n=input(’输入n= ’)

 if  n>=90

 chji=’优秀’

 elseif  n>=80

 chji=’良好’

 elseif  n>=70

 chji=’中等’

 elseif  n>=60

 chji=’及格’

 else

 chji=’不及格’

 end

  练习二:

将例2写入M-文件编辑器,然后在command window 调用这个程序。

  

(2)  switch语句

  switch语句可以替代多分支的if语句,而且switch语句简洁明了,可读性更好。

其格式为:

   switch  表达式   

   case  数值1     

          程序模块1

   case  数值2

          程序模块2

   ……

   otherwise

   程序模块n

   end

其中的otherwise模块可以省略。

  switch语句的执行过程是:

首先计算表达式的值,然后将其结果与每一个case后面的数值依次进行比较,如果相等,则执行该case的程序模块;如果都不相等,则执行otherwise模块中的语句。

如图3所示。

 

  例3  用switch…case开关结构将百分制的学生成绩转换为五分制的成绩输出。

  程序:

 clear

 x=58  

 switch  fix(x/10)

    case  {10,9}

        y=’优秀’

    case  8

        y=’良好’

    case  7

        y=’中等’

    case  6

        y=’及格’

    otherwise

        y=’不及格’

 end  

  练习三:

将例3写入M-文件编辑器,然后在command window 调用这个程序。

  3  循环结构

  循环结构的流程图如图4所示它可以多次重复执行某一组语句。

循环是计算机解决问题的主要手段。

 

  在MATLAB中,循环结构可以由两种语句结构实现。

  

(1) for…end循环结构。

其格式为:

                       for i=V,循环体结构,end

   其中V为一个行向量,循环变量i每次从V中取一个数值,执行一次循环体的内容,如此下去,直到完成V中的所有分量,就自动结束循环体的执行。

  例4    计算  s=12+22+52。

  程序:

  a=[1 2 5 ]; s=0; 

  for k=a, 

    s=s+k^2; 

  end, 

   s,  

  该例题只是为了说明for语句的格式,事实上,用下面的语句求和更为简单。

  命令:

    p=sum(a.^2)  

  练习四:

建立MATLAB与word的连接,在新建的m-book中写入上面的程序,并用notebook菜单运行之。

  循环结构里面还可以包含循环结构,形成多重循环。

  例5    设计一个九九乘法表。

  程序:

   clear

   for  i=1:

9

    for  j=1:

9

     a(i , j)=i*j;

    end

   end 

       a,  

   练习五:

①直接在命令窗编写上面的程序。

      ②试运行下面的程序,并加以分析:

  程序:

 disp(’     九九乘法表 ’),for i=1:

9,

      for j=1:

i,p{i}(j)=j*i;end,disp(p{i}),end  

  

(2) while…end循环结构。

其格式为:

        while  (表达式)

          循环结构体

        end

  例6  求MATLAB的相对精度

  解:

解题的思路是,让y值不断减小,直到MATLAB分不出1+y与1的差别为止。

  程序:

    y=1; while  1+y>1;  y1=y;  y=y/2; end,y1

  说明:

  ①for循环与while循环的区别是,for语句的循环次数是确定的,而while语句的循环次数是不确定的。

  ②一定要注意在循环结构体内设置“修改条件表达式的语句”,以免进入“死循环”。

  ③一旦出现死循环,在命令窗用ctrl+c可使程序中止。

  ④注意程序的可读性。

  练习六:

在M-文件编辑器内编写上面的脚本文件,并利用菜单或快捷按钮运行之。

  三、M-文件

  M文件是包含MATLAB代码的文件。

M文件按其内容和功能可分为脚本M文件和函数M文件这两大类。

  1、脚本M文件

  脚本M文件是许多MATLAB代码按顺序组成的命令集合,不接受参数的输入和输出,与MATLAB工作区共享变量空间。

脚本文件一般用来实现一个相对独立的功能,比如对某个数据集进行某种分析、绘图,求解方程等等。

前面的几个例题都是脚本文件的类型。

  2、函数M文件

  MATLAB的M-函数是由function语句引导的,其基本格式如下:

       function [输出形参列表] = 函数名 (输入形参列表)

       注释说明语句段,由%引导;

       函数体语句

  函数文件需要在M-文件编辑器中编写。

写完以后,按照当前的搜索路径保存。

以后就可以随时调用这个函数了。

  与脚本M文件不同的是,调用函数M文件时需要输入自变量的实际值。

随便打开一个M-文件看一看:

        open lsqlin

  编程实例

  例7. 定义一个函数  f(x)=[sin(x)]2, 其中x以“度”为单位。

然后再调用该函数。

  解:

在M-文件编辑器内写入下面的文件:

    function y=sinsd(x)

    %自变量x以“度”为单位。

    %

    %白城师院

    %数学建模协会,2007-5-12

    a=x/180*pi;

    y=sin(a).^2;

  将上面的文件保存之后即可随时调用。

  命令:

    t=sinsd(45) 

  t =

      0.5000  

  命令:

    help sinsd  

  命令:

    t=sinsd([45,60])  

  t =

      0.5000    0.7500  

表明该函数对元素群运算有效。

上面的语句相当于

  命令:

    x=[45,60];t=sinsd(x)  

  t =

      0.5000    0.7500  

  命令:

    x=[45,60;30,90];f=sinsd(x)  

  f =

      0.5000    0.7500

      0.2500    1.0000  

  将源文件中最后一行的“.”去掉,再运行以上两条命令,我们会发现什么?

 

  例8. 在MATLAB中,一个函数可以调用其它函数,也可以调用自身,即递归调用。

下面利用递归算法编写一个函数,用来计算Fibonacci数列的第k项。

  Fibonacci数列:

    1,1,2,3,5,8,13,21,……

  M-函数文件:

    function a=my_fibo(k)

    if k==1|k==2,a=1;

    else,a=my_fibo(k-1)+my_fibo(k-2);end  

  将这个文件写入M-文件编辑器并以名称“my_fibo.m”保存,以后就可以调用这个函数。

  递归算法无疑是解决某一类问题的有效方法,但不宜滥用,因为它的运算速度往往很慢。

  命令:

    tic,  n= my_fibo(26)  ,toc  

  n =

       121393

  elapsed_time =

      34.4290  

  下面我们尝试用一般的循环语句来求解这个问题。

  程序:

    tic,n=[1,1];for k=3:

100,n(k)=n(k-1)+n(k-2);end,toc,  

  elapsed_time =

          0.0100  

  命令:

    n(1:

26)  

  ans =

  Columns 1 through 8  

       1       1       2       3       5    8    13        21

  Columns 9 through 16  

      34      55      89     144     233   377      610       987

  Columns 17 through 24  

    1597    2584    4181    6765   10946 17711    28657     46368

  Columns 25 through 26  

   75025  121393  

  例9. 可变输入变量个数的函数

  MATLAB提供的conv( )函数可用来求两个多项式的乘积。

对于多个多项式的连乘,则不能直接使用此函数,需要用该函数嵌套使用,用起来很不方便。

下面编写一个MATLAB函数,使它能直接处理任意多个多项式的乘积问题。

  M-函数文件:

    function a=convs(varargin)

      a=1;

    for i=1:

length(varargin)

        a=conv(a,varargin{i});

    end

  形参varargin是一个特殊的字符串,它把输入变量列表转换成一个元胞数组,每一个输入变量都是这个元胞数组的一个元素。

下面调用这个函数,求解

         d=(x4+2x3+4x2+5)(x+2)(x2+2x+3)

  命令:

    p=[1,2,4,0,5];q=[1,2];f=[1,2,3];

    d=convs(p,q,f)  

  d =

      1     6    19    36    45    44    35    30  

  命令:

    convs(p,q,f,[1,1],[1,3],[1,1])  

  ans =

      1    11    56   176   376   578   678   648   527   315 90  

  例10 关于break、continue、return的用法。

  当程序运行过程中出现return命令时,程序停止运行。

break、continue用在循环语句中。

在循环语句中,如果遇到break命令时,程序结束当前的“for”或“while”循环,转而执行它下面最近的end以下的语句;遇到continue时,跳过当次循环而继续下一次的循环,例如,原定要循环5次,但在进入第3次循环时遇到了continue,则第3次的循环被跳过,而继续第4次、第5次的循环。

循环体实际上只重复执行了4次。

   程序:

    clear

    str=’MATLAB R14.3 version’;

    for i=1:

length(str)

        if (~isletter(str(i)))

             continue

          end

         result(i)=str(i);

        end

        result

      result = 

             MATLAB R     version     

   运行这个程序并观察结果。

然后再将程序中的语句continue改为break或return,看运行结果有何变化。

Aa

abs绝对值,模

acos反余弦

acosh反双曲余弦

acot反余切

acoth反双曲余切

acsc反余割

acsch反双曲余割

all所有元素均非零则为真

alpha透明控制

angle相角

ans最新表达式的运算结果

any有非零元则为真

area面域图

asec反正割

asech反双曲正割

asin反正弦

asinh反双曲正弦

atan反正切

atan2四象限反正切

atanh反双曲正切

autumn红、黄浓淡色

axis轴的刻度和表现

Bb

bar直方图

binocdf二项分布概率

binopdf二项分布累积概率

binornd产生二项分布随机数组

blanks空格符号

bode给出系统的对数频率曲线

bone蓝色调浓淡色阵

box坐标封闭开关

break终止最内循环

brighten控制色彩的明暗

butterButterWorth低通滤波器

Cc

caxis(伪)颜色轴刻度

cd设置当前工作目录

cdf2rdf复数对角型转换到实块对角型

ceil朝正无穷大方向取整

cell创建单元数组

char创建字符串数组或者将其他类型

变量转化为字符串数组

charfcnMaple函数

Children图形对象的子对象

clabel等高线标注

class判别数据类别

clc清除指令窗中显示内容

clear从内存中清除变量和函数

clf清除当前图形窗图形

close关闭图形窗

collect合并同类项

Color图形对象色彩属性

colorbar显示色条

colorcube三浓淡多彩交错色

colordef定义图形窗色彩

colormap设置色图

comet彗星状轨迹图

comet3三维彗星动态轨迹线图

compass射线图;主用于方向和速度

cond矩阵条件数

conj复数共轭

continue将控制转交给外层的for或while循环

contour等高线图

contourf填色等高线图

conv卷积和多项式相乘

cool青和品红浓淡色图

copper线性变化纯铜色调图

corrcoef相关系数

cos余弦

cosh双曲余弦

cot余切

coth双曲余切

cov协方差矩阵

csc余割

csch双曲余割

cumsum元素累计和

cumtrapz梯形法累计积分

Dd

dblquad二重(闭型)数值积分指令

deconv解卷和多项式相除

del2计算曲率

demos演示函数

det行列式的值

diag创建对角阵,抽取对角向量

diff求导数,差分和近似微分

digits控制符号数值的有效数字位数

dir列出目录清单

dirac单位冲激函数

disp显示矩阵和文字内容

disttool概率分布计算交互界面

doc列出指定工具包中所有函数名

docsearch进行多词条检索

double把符号常数转化为16位相对精度的浮点数值对象

drawnow刷新屏幕

dsolve求解符号常微分方程

Ee

edit矩阵编辑器,打开M文件

Eimaple指数积分

eig矩阵特征值和特征向量

end数组的最大下标,结束for,while,if语句

eps浮点相对误差

EraseMode图形对象属性

error显示错误信息

exit关闭MATLAB

exp指数

expand对指定项展开

expm矩阵指数

eye单位阵

ezcontour画等位线

ezcontourf画填色等位线

ezmesh画网线图

ezmeshc画带等位线的网线图

ezplot绘制符号表达式的二维图形

ezplot3画三维曲线

ezpolar画极坐标曲线

ezsurf画曲面图

ezsurfc画带等位线的曲面图

Ff

factor进行因式或因子分解

false按指定大小创建全0逻辑数组

feather从X轴出发的复数向量图,羽毛图

feval函数宏指令

fill多边形填色图

find寻找非数单下标标识

findsym确认表达式中自由符号变量

fix朝零方向取整

flag红-白-蓝-黑交错色图

fliplr矩阵的左右翻转

flipud矩阵的上下翻转

floor朝负无穷大方向取整

fminbnd非线性函数在某区间中极小值

fminsearch单纯形法求多元函数极值点指令

for(end)按规定次数重复执行语句

format设置数据输出格式

fourierFourier变换

fsolve解非线性方程组的最简单格式

function函数文件头

functions观察函数句柄内涵

functionhandle函数句柄

funfun数值泛函函数和ODE解算器

funm计算一般矩阵函数

fzero单变量函数的零点

Gg

gallery产生测试矩阵

gca获得当前轴的柄

gcf获得当前图的柄

general通用指令

get获得图柄

getframe获得影片动画图象的帧

ginput用鼠标在图上获取数据

global定义全局变量

gradient梯度

gray

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2