您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > matlab数学建模(快速教程)
MATLAB——数学建模基础教程主讲者:高陈燕MATLAB——数学建模基础教程MATLAB的概述MATLAB程序设计基础MATLAB在数值计算中的应用MATLAB的符号计算MATLAB的图形处理MATLAB程序设计基础MATLAB语言的基本要素MATLAB语言的核心——矩阵单元型数据和结构型数据M文件流程控制语句2020年2月6日7时38分4MATLAB语言的基本要素变量变量不需要事先声明,也不需要指定变量类型,它会自动根据所赋予变量的值或对变量的操作来确定变量的类型;赋值过程中,如果变量已存在,则用新值代替旧值,以新的类型代替旧的类型。变量的命名规则:变量名区分大小写;变量名长度不超过31位,第31位之后的字符被忽略;变量名以字母开头,变量名中可以包含字母、数字、下划线,但不能使用标点。变量一般为局部变量,即仅在其调用的M文件内部有效;若要定义全局变量,须在变量前加关键字global。Matlab语言主要是由几个基本要素构建而成的,其中包括变量、常量、数值、字符串、运算符及标点等。回到主目录2020年2月6日7时38分5常量matlab中预定义的一些特殊的量。i,j虚数单位Realmin最小的正浮点数,pi圆周率Realmax最大的浮点数,eps浮点运算的相对精度Inf无穷大NaNNot-a-Number,表示不定值例如:pians=%ans是默认的结果变量3.14161-10222-102325210-2020年2月6日7时38分61/0Warning:Dividebyzero.ans=Inf0/0Warning:Dividebyzero.ans=NaN2020年2月6日7时38分7定义变量时应避免与常量名相同,如果改变了某个常量的值,可以用“clear+常量名”命令来恢复该常量的初始设定值。pi=1pi=1clearpipians=3.14162020年2月6日7时38分8数值数值缺省为实数保留小数点后4位浮点数表示。其输入格式与C语言一致:如:9-730.19991.475e6输出格式由format命令控制,只是影响屏幕显示效果,不影响内部存储和计算。下面以pi为例。formatlong;pians=3.14159265358979formatlonge;pians=3.141592653589793e+000formatlongg;pians=3.141592653589792020年2月6日7时38分9z=2*exp(pi/3i)z=1.0000+1.7321iMatlab语言还提供了复数的表达和运算功能。复数的基本单位表示为i或j。例如:如果是表达式,必须在虚部的数值与i、j之间使用乘号。sin(pi/3)+cos(pi/3)j???sin(pi/3)+cos(pi/3)jError:UnexpectedMATLABexpression.sin(pi/3)+cos(pi/3)*jans=0.8660+0.5000i2020年2月6日7时38分10字符串字符串用单引号输入或赋值;字符串的每个字符都是都是字符数组的一个元素;字符串和字符数组基本上等价。s='iloveyou's=iloveyousize(s)ans=110s(2)ans=s(10)ans=u字符串的每个字符(包括空格)都是字符数组的一个元素。在matlab中,字符串与字符数组或矩阵基本上是等价的。2020年2月6日7时38分11如果在字符串内使用单引号时,可以用连续两个单引号表示。例如:字符串之间的转换函数:double字符串转换为数值代码num2str数字转换为字符串int2str整数转换为字符串mat2str矩阵转换为字符串str2num转换字符串为数字double(s)‘%s=‘iloveyou’ans=1053210811111810132121111117s='it''sgood‘s=it'sgood2020年2月6日7时38分12a=[1:5]a=12345b=num2str(a)b=12345a*2ans=246810b*2ans=9864641006464102646410464641062020年2月6日7时38分13matlab对字符串的操作与C语言中的几乎完全相同:strcat链结串strcmp比较串strvcat垂直链结串strncmp比较串的前n个字符findstr在其他串中找此串upper转换串为大写lower转换串为小写blanks生成空串deblank移去串中空格……例如:把前面的字符串s转化成大写。s=“it’good”upper(s)ans=IT'SGOOD执行字符串的功能用eval来实现。t=‘1/(a*b-1)’;a=2;b=3;c=eval(t)%可以在一行中表示。c=0.20002020年2月6日7时38分14运算符在matlab语言中运算符包括算术运算符、关系运算符和逻辑运算符。其中算术运算符见右表:其中点运算是指操作元素点对点的运算,也就是说矩阵内元素对元素之间的运算,点运算要求参与运算的变量在结构上必须是相似的。例如:操作符定义+算术加-算术减*算术乘.*点乘^算术乘方.^点乘方\算术左除.\点左除/算术右除./点右除2020年2月6日7时38分15a=[1,2,3;4,5,6;7,8,9]a=123456789b=[123456789]b=123456789c=a*bc=303642668196102126150d=a.*bd=149162536496481思考:题目:通过描点法得到sin(x)xcos(x)函数在0-pi区间上的曲线。提示:通过点运算获得。(附件diancheng。txt)2020年2月6日7时38分16Matlab语言的关系运算符如右表:当判断一个矩阵是否为空矩阵时,一般不用“==”,而应当使用函数isempty。操作符定义==等于~=不等于大于=大于等于小于=小于等于2020年2月6日7时38分17Matlab语言的逻辑运算符如右表:进行逻辑判断时,所有非零数值均被认为为真,而零为假;在逻辑判断结果中,判断为真时输出1,为假时输出0.三种运算符中,它们的优先级关系先后为:算术运算符、关系运算符、逻辑运算符。操作符定义&逻辑与|逻辑或~逻辑非xor逻辑异或any当向量中存在非零元素时为真all当向量中所有元素非零时为真2020年2月6日7时38分18a=[1:3;4:6;7:9];x=5;y=ones(3)*5;xa=x=axa=000011111b=[010;101;001];ab=a&bab=010101001nb=~bnb=1010101102020年2月6日7时38分19a=magic(5);a(:,3)=zeros(5,1)a=17240815235014164602022101202131118029a1=all(a(:,1)10)a1=0a2=all(a3)a2=11000a11=any(a(:,1)10)a11=1a22=any(a10)a22=110112020年2月6日7时38分20标点在matlab中一些标点符号也被赋以特殊的意义,或表示要进行一定的运算等,如下表:标点定义标点定义:冒号,具有多种应用功能…续行符;区分行,及取消结果显示%注释标记,区分列,及函数参数分隔符等!调用操作系统运算()指定运算过程中的先后次序等[]矩阵定义的标志等{}用于构成单元数组等‘字符串的标示符2020年2月6日7时38分21下面对上表中各标点作进一步的介绍。首先,用冒号来定义行向量。基本格式:x=x1:step:x2(初始值:步长:尾元素数值限)x=x1:x2(默认步长为1)注意:这里强调x2为尾元素数值限,而不是尾元素值。当x2-x1恰为步长的整数倍时,x2才能成为尾值。例如:2020年2月6日7时38分22a=1:2:12a=1357911a=12:-2:1a=12108642a=1:6a=123456a=2:2:12a=246810122020年2月6日7时38分23其次,通过使用冒号,可以截取指定矩阵中的部分。例如:a=[1:18];a=reshape(a,3,6)%重组矩阵a=147101316258111417369121518a1=a(:,1:3)%提取矩阵a的第1到3列元素组成的子矩阵。a1=147258369a2=a(1:2,3:end)a2=71013168111417思考:B1=a(1:3,:)?2020年2月6日7时38分24分号在matlab语言中所起的作用是作为分隔行的标志,这里包括在矩阵定义中对行的区分以及在程序代码中对行的划分。在矩阵定义中,分号之间的数据被认为是矩阵的同一行。对于以分号结尾的行语句,matlab语言不会把其运算结果显示在命令窗口中。逗号主要起两个作用。其一是逗号是函数参数的分隔符,也是矩阵下标的分隔符。其二是逗号也是区分矩阵列的标志,在同一行中,逗号分隔开的是各个列。括号是调整运算先后次序的标点,可以通过引用括号来调整运算次序。矩阵的定义需要使用中括号。此外,中括号可以表示空矩阵,并通过该空矩阵实现对矩阵的部分删除。以下举例:2020年2月6日7时38分25a=[1,2,3,4;5,6,7,8;4,3,2,1;8,7,6,5]a=1234567843218765a(:,1:2)=[]a=34782165b=a([13],:)b=34212020年2月6日7时38分26大括号是单元型数据所特有的标点。后面介绍。小数点“.”,它起到了数学符号的作用;而作为点运算的标志符,它又构成了各种各样的点运算;最重要的是它可作为结构型数组应用时的专有符号。“…”为matlab语言中的续行符,但是该续行符只能出现在各个语义群之间,也就是说不能出现在变量名之间,否则出错。例如:a=sin(pi/4)+cos(pi/4)-tan(pi/4)...+cot(pi/4)a=1.4142a=sin(pi/4)+cos(pi/4)-t...an(pi/4)???an(pi/4)|Error:UnexpectedMATLABexpression.2020年2月6日7时38分27在matlab语言中,一行内在“%”之后的文字均被认为是对M文件或程序代码的解释部分。“!”可以在命令窗口直接调用操作系统命令,例如DOS命令,并将结果展示在命令窗口中,比如在命令窗口中调用“!dirc”,以显示C盘的文件列表。单引号作为字符串的标示符而存在,同时,它在矩阵运算中也表示矩阵的转置运算及复数的共轭值。2020年2月6日7时38分28a=[1,2,3,4;5,6,7,8]a=12345678a'ans=15263748s=3-4i;s'ans=3.0000+4.0000i回到主目录2020年2月6日7时38分29MATLAB语言的核心——矩阵矩阵的生成直接输入小矩阵(最简便的方法)注意点:输入矩阵时要以“[]”为其标识,即矩阵的元素应在“[]”内部。矩阵的同行元素之间可由空格或“,”分隔,行与行之间用“;”或回车符分隔。矩阵元素可为运算表达式。无任何元素的空矩阵也合法。回到主目录2020年2月6日7时38分30矩阵987654321A的输入:A=[1,2,3;4,5,6;7,8,9]A=123456789a=[123456789]a=123456789创建带有运算表达式的矩阵:b=[sin(pi/3),cos(pi/4);log(9),tan(pi/4)];%什么样的结果?2020年2月6日7时38分31利用中括号将小矩阵合成一个大矩阵b=[1,2;3,4];a=[b,b';b^2,b*3]a=121334247103
本文标题:matlab数学建模(快速教程)
链接地址:https://www.777doc.com/doc-3521556 .html