【3小时学会MATLAB】3 分支语句
Matlab分支语句和编程设计分析

2018年10月21日
第7页
MATLAB R2010a基础教程
清华大学出版社
3.设计你的程序得以实现的算法
算法是指为某个问题找到答案一步接一步的程序。在这个阶段自上而 下的编程方法发挥了作用。编程设计者开始对这个问题进行逻辑划分 ,把它逐步分解为一个又一个子工作。这个过程叫做分解 (decomposition)。如果一些子工作还是比较大,设计者还可以把他 它分解成更小的块。这个过程将会继续到问题被分解成许多简单且易 理解的小块为止。 在问题被分解成小块之后,每一个小块要被进一步的求精,这个过程 叫做逐步求精(stepwise refinement)。在这个过程中,设计者开始 于对本小块代码总括性的描述,然后开始一步一步地定义所需的函数 ,越来越具体,直到他能够转化为MATLAB语句。逐步求精的过程 中,我们要用到的伪代码将会在下节为大家介绍。 在算法开发过程中,这个方法是非常有用的。如果设计者真正理解了 解决问题这个些步骤,他将会对问题进行分解和逐步求精。
2018年10月21日
第15页
2018年10月21日
MATLAB R2010a基础教程
清华大学出版社
例(温度转换)设计一个MATLAB程序,读取一个华氏 温度的输入,输出开尔文温度。
华氏温度和开尔文温度的转换关系式可在物理学课本中找 到。其关系式为:
5 T (开尔文) T (摄氏度) 32.0 273.15 9
第11页
2018年10月21日
MATLAB R2010a基础教程 大程序典型地调试过程
开始
清华大学出版社
独立子程序的单元检测 分别使每一个子程序生效 一系列的组合(把一些 子程序添加到程序中) 次数根据需要而定
Matlab变量、分支语句和循环语句

Matlab变量、分⽀语句和循环语句⼀、Matlab的变量1、变量的命名Matlab的变量名由数字、字母和下划线组成,可是仅仅能由字母开头。
⼤写和⼩写敏感,最⼤长度为63个字符。
不能使⽤Matlab的关键字作为变量名,应当避免使⽤函数名作为变量名。
假设变量名採⽤函数名。
则该函数失效。
Matlab提供了isvarname函数来验证⽤户指定的变量名是否为Matlab接受的合法变量名。
该函数返回1或0,分别代表合法或者不合法。
>> isvarname('_var')ans =>> isvarname('var_123')ans =12、变量的类型Matlab中的变量共分为三类:局部变量、全局变量和永久变量。
局部变量不⽤多说,和其它的编程语⾔是相同的含义,局部变量存储在函数的⼯作空间中,当函数调⽤结束之后,局部变量随之被删除。
全局变量在整个Matlab的⼯作空间中都有效。
当在⼀个⼯作空间中改变该值的时候,该变量在其余空间内的值也将被改变。
全局变量的声明格式例如以下:>> global X_val>> X_val=3;>> X_valX_val =3永久变量能够⽤persistent声明。
仅仅能在M⽂件函数中定义和使⽤;改变了仅仅同意声明它的函数才⼲使⽤的规则。
当声明它的函数退出时,永久变量继续保存在内存中。
persistent a3、特殊变量和关键字特殊变量是指Matlab提前定义的具有默认意义的变量,例如以下表:变量含义变量含义ans⽤作结果的缺省变量名beep使得计算机发出“嘟嘟”声pi圆周率eps机器零阈值,浮点精度限(2.2204*10^-16),MATLAB中的最⼩数inf表⽰⽆穷⼤,如1/0NaN表⽰不定数。
即结果不能确定,⽐如0/0j或i虚数nargin函数的输⼊參数个数nargout函数的输出參数个数Realmin可⽤的最⼩正实数realmax可⽤的最⼤正实数bitmax可⽤的最⼤正整数(以双精度格式存储)varargin可变函数的输⼊參数个数varargout可变函数的输出參数个数Matlab中有20个关键字。
Matlab基础知识

(作用到各元素上)
4、矩阵分解函数
置换阵与单位下三角阵的乘积
(1)LU分解 [ L , U ] = lu (A) —— A = L*U [ L , U , P ] = lu (A) —— P*A = L*U (2)Cholesky分解 R = Chol (A) —— A = R’ * R
置换阵
单位下三角阵
1 1]
(2) 求根 roots(p)
p为向量
得到多项式 p 的根组成的列向量
(3) 乘除法
p1 、p2为向量
乘: conv(p1, p2) — p1式 * p2式 除: deconv(p1, p2) — p1式 / p2式
(4) 多项式微分
polyder ( p ) — 多项式 p 的导数
p为向量
3. 数字的输入输出格式 (1)输入格式
与 C语言相同。如: 6 -83 0.2006
1.4756e6
2.34E21
(2)输出格式
例: sqrt ( 2 ) 的几种显示格式 Short 1.4142 Long 1.41421356237310 Short e 1.4142e+000 Long e 1.414213562373095e+000 可由 format 命令控制(缺省为Short ), 格式如: format Long
(2) 特征多项式的生成 — poly(A) (3) 由根创建多项式 — poly(u) u=[r1,r2,…,rn ] 列向量也可 poly(u)表示: (x- r1 ) (x- r2 ) …(x- rn ) 例: >> u=[-5, -3+4i, -3-4i ]; >> p= poly(u) p= 1 11 55 125
MATLAB之变量、函数及常用语句

1、变量命名规则:变量名的第一个字符必须是英文字母,最多包含31个字符(包括英文字母、数字和下画线),变量中不得包含空格和标点符号,不得包含加减号。
变量名和函数区别字母的大小写,如matrix和Matrix表示两个不同的变量。
要防止它与系统的预定义变量名(如i,j,pi,eps等)、函数名(如who,length等)、保留字(如for,if,while,end等)冲突。
变量赋值用“=”(赋值号)。
有一些变量永久驻留在工作内存中,不能再重新赋值。
这些变量见下表2、基本初等函数3、几个常用的函数real(z) 取复数z的实部image(z) 取复数z的虚部angle(z) 取复数z的辐角conj(z) 取复数z的共轭mod(m,n) 输出m除以n的余数4、数据文件的存储和调用在清除变量或退出MATLAB后,变量不复存在。
为了保存变量的值,可以把它们存储在数据文件中。
例如,在指令窗口中输入>>clear;x=pi/3;a=sin(x);b= cos(x);c=2*a+b执行以后,在File菜单中选Save Workspace As 存入数据文件(例如abc.mat)。
则在以后的操作中可以调用这个数据文件。
只要在File菜单中点Open操作,就可以打开这个文件。
4.1)M文件在进行复杂运算时,在指令窗口高度程序或修改指令是不方便的,因此需要从指令窗口工具栏的新建按钮或选择菜单File:New:M-Fil进入MATLAB的程序编辑器窗口,以编写自己的M文件。
M文件有二类:M脚本文件和M函数文件。
将多条MATLAB语句写在编辑器中,以扩展名为m的文件保存在某一目录中,就得到一个脚本文件。
例如在M文件编辑器中输入clear;n=1:100;s=sum%sum是求和命令(如下图),然后单击工具栏中的保存按钮,保存中选择Debug:run菜单,则会在指令窗口输出:s=5050*注:文件名与变量名的命名规则相同,M文件一般用小写字母。
matlab的输出语句

matlab的输出语句在编程领域,Matlab是一个颇受欢迎的工具,用于数值计算、数据分析和算法开发。
作为一种高级编程语言,Matlab拥有丰富的功能和强大的输出语句,能够帮助开发者进行结果显示和调试。
本文将介绍Matlab中常用的输出语句,并探讨它们的灵活应用。
Matlab中最基本的输出语句是disp函数。
使用disp函数,我们可以将指定的文本或变量的值显示在Matlab命令窗口中。
例如,当需要输出一段提示文字时,可以调用disp函数,如下所示:```matlabdisp('Welcome to Matlab!');```这将在命令窗口中显示"Welcome to Matlab!"。
除了文本,我们还可以输出变量的值。
例如:```matlabx = 5;disp(x);```这将在命令窗口中显示变量x的值,即数字5。
除了disp函数,Matlab还提供了其他几种输出语句,如fprintf函数和sprintf函数。
这些函数允许我们根据需要格式化输出结果。
fprintf函数用于将格式化文本输出到文件或命令窗口。
它类似于C语言中的printf函数。
例如,我们可以使用fprintf函数将结果输出到文件中:```matlabfid = fopen('output.txt', 'w');fprintf(fid, 'The value of x is %d\n', x);fclose(fid);```这将在当前目录下创建一个名为output.txt的文件,并将内容输出为"The value of x is 5"。
注意,我们使用%d作为占位符,表示要替换为整数的值。
与fprintf函数类似,sprintf函数用于将格式化文本输出到字符串中,而不是文件。
这在需要将输出结果传递给其他函数或保存到变量中时非常有用。
(完整版)MATLAB基本语法

在MATLAB中,变量和常量的标识符最长允许19个字符,标识符中第一个字符必须是英文字母。
MATLAB区分大小写,默认状态下,A和a被认为是两个不同的字符。
(case sensitive)一、数组和矩阵(一)数组的赋值数组是指一组实数或复数排成的长方阵列。
它可以是一维的“行”或“列”,可以是二维的“矩形”,也可以是三维的甚至更高的维数。
在MATLAB中的变量和常量都代表数组,赋值语句的一般形式为变量=表达式(或数)如键入a=[1 2 3; 4 5 6; 7 8 9]则将显示结果:a=1 2 34 5 67 8 9数组放置在[]中;数组元素用空格或逗号“,”分隔;数组行用分号“;”或“回车”隔离。
(二)复数MATLAB中的每一个元素都可以是复数,实数是复数的特例。
复数的虚部用i或j表示。
复数的赋值形式有两种:z=[1+1i,2+2i;3+3i,4+4i]z=[1,2;3,4]+[1,2;3,4]*i得 z=1.000+1.000i 2.000+2.000i3.000+3.000i4.000+4.000i以上两式结果相同。
注意,在第二式中“*”不能省略。
在复数运算中,有几个运算符是常用的。
运算符“′”表示把矩阵作共轭转置,即把矩阵的行列互换,同时把各元素的虚部反号。
函数conj表示只把各元素的虚部反号,即只取共轭。
若想求转置而不要共轭,就把conj和“′”结合起来完成。
例如键入w=z′,u=conj(z),v=conj(z)′可得 w=1.000-1.000i 3.000-3.000i2.000-2.000i 4.000-4.000iu=1.000-1.000i 2.000-2.000i3.000-3.000i4.000-4.000iv=1.000+1.000i 3.000+3.000i2.000+2.000i 4.000+4.000i(三)数组寻访和赋值的格式表M-1常用子数组的寻访、赋值格式子数组的寻访和赋值a(r ,c)a(r ,:)a(:,c) a(:)a(s)由a 的“r 指定行”和“c 指定列”上的元素组成的子数组由a 的“r 指定行”和“全部列”上的元素组成的子数组由a 的“全部行”和“c 指定列”上的元素组成的子数组由a 的各列按自左到右的次序,首尾相接而生成“一维长列”数组“单下标”寻访。
(完整版)matlab基本语句

(完整版)matlab基本语句第2章M ATLAB程序设计MATLAB语言为解释型程序设计语言。
在程序中可以出现顺序、选择、循环三种基本控制结构,也可以出现对M-文件的调用(相当于对外部过程的调用)。
由于 MATLAB开始是用FORTRAN语言编写、后来用 C语言重写的,故其既有FORTRAN的特征,又在许多语言规则方面与C语言相同。
2.1 顺序结构语句在顺序结构语句中,包括表达式语句、赋值语句、输入输出语句、空语句等。
2.1.1 表达式语句格式:表达式,%显示表达式值表达式;%不显示表达式值表达式%显示表达式值如:x + y,sin(x);–5最后的表达式值暂保存在变量ans中。
2.1.2 赋值语句格式:v =表达式,%结果送v并显示v v =表达式;%结果送v不显示v v =表达式%结果送v并显示v 2.1.3 空语句格式:,;2.1.4 输入语句1、input语句(实际上是函数)格式1:input(提示字符串)功能:显示提示字符串,可输入数字、字符串(两端用单引号括起)、或表达式格式2:input(提示字符串,'s')功能:显示提示字符串,并把输入视为字符串2、yesinput语句格式:yesinput(提示字符串,缺省值,值范围)功能:显示提示字符串和缺省值,若只打入回车则以缺省值作为输入值,若输入的值不在指定范围内则认为输入无效,B并等待用户重新输入。
如:t=yesinput('指定线的颜色',…'red','red|blue|green')运行结果如下:指定线的颜色(red):yellow %不在值内指定线的颜色(red):blue %重输t =bluex=yesinput('输入元素个数',10,[1,20])运行结果如下:输入元素个数(10):x =103、Keyboard语句格式:Keyboard功能:暂停M-文件的执行,并等待用户从键盘输入命令以查看或改变变量的值,直到输入return命令而返回相应的M-文件继续执行。
matlab3_final matlab教程

Matlab编程(M文件)北京理工大学信息科学技术学院徐贵航xu.guihang@一、为什么要用到M文件:1、命令窗口中输入的指令是输入一行运行一行,这样对一些并不是顺序执行的(条件执行和循环执行)指令非常不利;即使顺序执行,如果程序较长,也很难调试与纠错;2、Matlab中的自编函数要通过M文件实现。
二、认识M文本编辑器:打开方式:1、file\new\m-file;2、直接点击工具栏的“新建”图标;3、在命令窗口中输入edit。
文本编辑器英文为“editor/debugger”,它兼有编辑与调试的作用。
大部分菜单与工具栏与普通编辑器相同。
执行、单步等操作在debug菜单下;断点、报错等设置在breakpoint菜单下;三、Matlab控制流及编程关键字1、For循环与C语言中对比:举例:for_example.m(%后为注释)运行结果:2、while循环语法格式:(与C语言对比)3、 if-else-end 分支结构: 语法格式:为节省空间,C 语言部分格式不太规范。
与C 相比,Matlab 多了一个elseif 关键字,使得分支更加灵活简洁。
4、 其他break:与C 语言相同;switch ……case :与C 语言基本相同,不过执行完每一种情况后自动跳出(C 语言则接着往下执行); try ……catch:与C++相同,一般用的不多;pause:执行到该指令后,程序停止,等用户按任意建开始; pause (n )停留n 秒四、 M 文件函数的编写:Matlab 中函数以关键字function 为标志,并且只能在文本编辑器中编辑。
函数返回指令为return;在函数体中可以有循环、分支与函数调用,并且允许自己调用自己(递归)。
下面以实现加法为例,比较Matlab 函数与C++函数(C 函数比C++麻烦一点)在以function为开头的函数格式定义后,最好有关于这个函数及其用法的详细说明,在命令窗口中运行“help 函数名”,可以显示这些内容。
matlab常用指令简介

1命令行中输入help+工具箱名或函数名,可以显示对应的功能信息。
2 matlab中同样支持复数变量,表示方法为a=m+ni(j)。
当n是表达式时,n与i(j)之间必须要加乘号 b=1+a*i。
另外也可以用complex(x,y)来产生复数。
在循环程序段中一般不把i和j作为变量名称,以免生成数据时发生误解。
3>> i=5;>> a=5+2ia =5.0000 + 2.0000i>> a=5+2*ia =154 first:increment:last表示创建一个从first开始,到last结束,数据元素的增量为increment的等差数组。
冒号表示直接定义数据元素之间的增量,而不是数据元素个数。
若增量为1,上面创建数组的方式可简写为: first:last。
5 linspace通过直接定义数据元素个数,而不是数据元素之间的增量来创建数组。
此函数的调用格式如下:linspace(firstvalue,lastvalue,number)6,与linspace一样,logspace函数也通过直接定义数据元素个数,而不是数据元素之间的增量来创建数组。
logspace函数的调用格式为:logspace(firstvalue,lastvalue,number)此函数表示创建一个从10的firstvalue次幂开始,到10的lastvalue 次幂结束,包含有number个数据元素的等比数组7,数组与标量的四则运算是指数组中的每个元素与标量进行加、减、乘、除运算。
数组的指数运算为exp,以2为底的指数运算为pow2;数组自然对数运算为log,常用对数运算为log10,以2为底的对数运算为log2,开方运算sqrt。
数组与数组之间进行运算时,每个数组必须具有相同的维数,且必须用点乘或点除。
这些运算都是数组中每个元素进行相对应的运算.a=exp([1 2])a =2.7183 7.3891查询x数组的第n个元素,x(n);查询x数组的第2到4个元素,x(2:4);查询x数组的第4到最后1个元素,x(4:end);查询x数组的第3、2、1个元素,x(3:-1:1);查询x数组的小于n元素,x(find(x<n));查询x数组的第4、2、5个元素,x([4 2 5]);将x数组的第n个元素赋值为A,x(n)=A;查询数组A的第2行,第3列的元素,A(2,3);查询数组A的第3行所有的元素,A(3,:);查询数组A的第2列转置后所有的元素,(A(:,2))’。
matlab_2013_教程_第三章 选择语句

switch语句和if语句类似。Switch语句根据
变量或表达式的取值不同分别执行不同的命令。
例如:根据菜单选择显示不同的函数 x=menu('波形','正弦','余弦','正切','余切'); switch x case 1 ezplot('sin') case 2 ezplot('cos') case 3 ezplot('tan') case 4 ezplot('cot') end
n=100;
for i=1:n
y=y+1/(2*i-1);
end
在实际MATLAB编程中,采用循环语句
会降低其执行速度,所以前面的程序通
常由下面的程序来代替: n=100;
i=1:2:2*n-1;
y=sum(1./i);
for语句更一般的格式为:
for 循环变量=矩阵表达式
循环体语句
end 执行过程是依次将矩阵的各列元素赋给循
第3章 选择语句 主要内容
if语句和switch语句 menu函数 is函数 for语句
matlab常用函数与常用指令大全[整理版]
![matlab常用函数与常用指令大全[整理版]](https://img.taocdn.com/s3/m/ff905ddadb38376baf1ffc4ffe4733687f21fc56.png)
matlab常用函数与常用指令大全matlab, 函数, 指令, 大全matlab常用函数与常用指令大全matlab常用函数- -1、特殊变量与常数ans 计算结果的变量名computer 确定运行的计算机eps 浮点相对精度Inf 无穷大I 虚数单位inputname 输入参数名NaN 非数nargin 输入参数个数nargout 输出参数的数目pi 圆周率nargoutchk 有效的输出参数数目realmax 最大正浮点数realmin 最小正浮点数varargin 实际输入的参量varargout 实际返回的参量操作符与特殊字符+ 加- 减* 矩阵乘法.* 数组乘(对应元素相乘)^ 矩阵幂 .^ 数组幂(各个元素求幂)\ 左除或反斜杠/ 右除或斜面杠./ 数组除(对应元素除)kron Kronecker张量积: 冒号() 圆括[] 方括 . 小数点.. 父目录 ... 继续, 逗号(分割多条命令); 分号(禁止结果显示)% 注释! 感叹号' 转置或引用= 赋值== 相等<> 不等于& 逻辑与| 逻辑或~ 逻辑非xor 逻辑异或2、基本数学函数abs 绝对值和复数模长acos,acodh 反余弦,反双曲余弦acot,acoth 反余切,反双曲余切acsc,acsch 反余割,反双曲余割angle 相角asec,asech 反正割,反双曲正割secant 正切asin,asinh 反正弦,反双曲正弦atan,atanh 反正切,双曲正切tangent 正切atan2 四象限反正切ceil 向着无穷大舍入complex 建立一个复数conj 复数配对cos,cosh 余弦,双曲余弦csc,csch 余切,双曲余切cot,coth 余切,双曲余切exp 指数fix 朝0方向取整floor 朝负无穷取整*** 最大公因数imag 复数值的虚部lcm 最小公倍数log 自然对数log2 以2为底的对数log10 常用对数mod 有符号的求余nchoosek 二项式系数和全部组合数real 复数的实部rem 相除后求余round 取整为最近的整数sec,sech 正割,双曲正割sign 符号数sin,sinh 正弦,双曲正弦sqrt 平方根tan,tanh 正切,双曲正切3、基本矩阵和矩阵操作blkding 从输入参量建立块对角矩阵eye 单位矩阵linespace 产生线性间隔的向量logspace 产生对数间隔的向量numel 元素个数ones 产生全为1的数组rand 均匀颁随机数和数组randn 正态分布随机数和数组zeros 建立一个全0矩阵colon) 等间隔向量cat 连接数组diag 对角矩阵和矩阵对角线fliplr 从左自右翻转矩阵flipud 从上到下翻转矩阵repmat 复制一个数组reshape 改造矩阵roy90 矩阵翻转90度tril 矩阵的下三角triu 矩阵的上三角dot 向量点集cross 向量叉集ismember 检测一个集合的元素intersect 向量的交集setxor 向量异或集setdiff 向是的差集union 向量的并集数值分析和傅立叶变换cumprod 累积cumsum 累加cumtrapz 累计梯形法计算数值微分factor 质因子inpolygon 删除多边形区域内的点max 最大值mean 数组的均值mediam 中值min 最小值perms 所有可能的转换polyarea 多边形区域primes 生成质数列表prod 数组元素的乘积rectint 矩形交集区域sort 按升序排列矩阵元素sortrows 按升序排列行std 标准偏差sum 求和trapz 梯形数值积分var 方差del2 离散拉普拉斯diff 差值和微分估计gradient 数值梯度cov 协方差矩阵corrcoef 相关系数conv2 二维卷积conv 卷积和多项式乘法filter IIR或FIR滤波器deconv 反卷积和多项式除法filter2 二维数字滤波器cplxpair 将复数值分类为共轭对fft 一维的快速傅立叶变换fft2 二维快速傅立叶变换fftshift 将FFT的DC分量移到频谱中心ifft 一维快速反傅立叶变换ifft2 二维傅立叶反变换ifftn 多维快速傅立叶变换ifftshift 反FFT偏移nextpow2 最靠近的2的幂次unwrap 校正相位角多项式与插值conv 卷积和多项式乘法roots 多项式的根poly 具有设定根的多项式polyder 多项式微分polyeig 多项式的特征根polyfit 多项式拟合polyint 解析多项式积分polyval 多项式求值polyvalm 矩阵变量多项式求值residue 部分分式展开interp1 一维插值interp2 二维插值interp3 三维插值interpft 使用FFT的一维插值interpn 多维插值meshgrid 为3维点生成x和y的网格ndgrid 生成多维函数和插值的数组pchip 分段3次Hermite插值多项式ppval 分段多项式的值spline 3次样条数据插值绘图函数bar 竖直条图barh 水平条图hist 直方图histc 直方图计数hold 保持当前图形loglog x,y对数坐标图pie 饼状图plot 绘二维图polar 极坐标图semilogy y轴对数坐标图semilogx x轴对数坐标subplot 绘制子图bar3 数值3D竖条图bar3h 水平3D条形图comet3 3D慧星图cylinder 圆柱体fill3 填充的3D多边形plot3 3维空间绘图quiver3 3D震动(速度)图slice 体积薄片图sphere 球stem3 绘制离散表面数据wate***ll 绘制瀑布trisurf 三角表面clabel 增加轮廓标签到等高线图中datetick 数据格式标记grid 加网格线gtext 用鼠标将文本放在2D图中legend 图注plotyy 左右边都绘Y轴title 标题xlabel X轴标签ylabel Y轴标签zlabel Z轴标签contour 等高线图contourc 等高线计算contourf 填充的等高线图hidden 网格线消影meshc 连接网格/等高线mesh 具有参考轴的3D网格peaks 具有两个变量的采样函数surf 3D阴影表面图su***ce 建立表面低层对象surfc 海浪和等高线的结合surfl 具有光照的3D阴影表面trimesh 三角网格图1 常用指令(General Purpose Commands) 1.1 通用信息查询(General information) demo 演示程序help 在线帮助指令helpbrowser 超文本文档帮助信息helpdesk 超文本文档帮助信息helpwin 打开在线帮助窗info MA TLAB 和MathWorks 公司的信息subscribe MA TLAB 用户注册ver MA TLAB 和TOOLBOX 的版本信息version MA TLAB 版本whatsnew 显示版本新特征1.2 工作空间管理(Managing the workspace)clear 从内存中清除变量和函数exit 关闭MA TLABload 从磁盘中调入数据变量pack 合并工作内存中的碎块quit 退出MA TLABsave 把内存变量存入磁盘who 列出工作内存中的变量名whos 列出工作内存中的变量细节workspace 工作内存浏览器1.3 管理指令和函数(Managing commands and functions) edit 矩阵编辑器edit 打开M 文件inmem 查看内存中的P 码文件mex 创建MEX 文件open 打开文件pcode 生成P 码文件type 显示文件内容what 列出当前目录上的M、MA T、MEX 文件which 确定指定函数和文件的位置1.4 搜索路径的管理(Managing the seach patli) addpath 添加搜索路径rmpath 从搜索路径中删除目录path 控制MA TLAB 的搜索路径pathtool 修改搜索路径1.5 指令窗控制(Controlling the command window) beep 产生beep 声echo 显示命令文件指令的切换开关diary 储存MA TLAB 指令窗操作内容format 设置数据输出格式more 命令窗口分页输出的控制开关1.6 操作系统指令(Operating system commands) cd 改变当前工作目录computer 计算机类型copyfile 文件拷贝delete 删除文件dir 列出的文件dos 执行dos 指令并返还结果getenv 给出环境值ispc MA TLAB 为PC(Windows)版本则为真isunix MA TLAB 为Unix 版本则为真mkdir 创建目录pwd 改变当前工作目录unix 执行unix 指令并返还结果vms 执行vms dcl 指令并返还结果web 打开web 浏览器! 执行外部应用程序2 运算符和特殊算符(Operators and special characters)2.1 算术运算符(Arithmetic operators)+ 加- 减* 矩阵乘.* 数组乘^ 矩阵乘方.^ 数组乘方\ 反斜杠或左除/ 斜杠或右除./或.\ 数组除张量积[注]本表第三栏括号中的字符供在线救助时help 指令引述用2.2 关系运算符(Relational operators)= = 等号~= 不等号< 小于> 大于<= 小于或等于>= 大于或等于2.3 逻辑操作(Logical operators) & 逻辑与| 逻辑或~ 逻辑非xor 异或any 有非零元则为真all 所有元素均非零则为真2.4 特殊算符(Special characters) :冒号( ) 圆括号[ ] 方括号{ } 花括号@ 创建函数句柄. 小数点. 构架域的关节点.. 父目录续行号, 逗号; 分号% 注释号! 调用操作系统命令= 赋值符号ˊ引号ˊ复数转置号.ˊ转置号[,] 水平串接[;] 垂直串接( ),{ },. 下标赋值( ),{ },. 下标标识subsindex 下标标识3 编程语言结构(Programming language constructs) 3.1 控制语句(Control flow)break 终止最内循环case 同switch 一起使用catch 同try 一起使用continue 将控制转交给外层的for 或while 循环else 同if 一起使用elseif 同if 一起使用end 结束for,while,if 语句for 按规定次数重复执行语句if 条件执行语句otherwise 可同switch 一起使用return 返回switch 多个条件分支try try-cathch 结构while 不确定次数重复执行语句3.2 计算运行(Evaluation and execution)assignin 跨空间赋值builtin 执行内建的函数eval 字符串宏指令evalc 执行MA TLAB 字符串evalin 跨空间计算串表达式的值feval 函数宏指令run 执行脚本文件3.3 脚本文件、函数及变量(Scripts,function,and variables) exist 检查变量或函数是否被定义function 函数文件头global 定义全局变量isglobal 若是全局变量则为真iskeyword 若是关键字则为真mfilename 正在执行的M 文件的名字persistent 定义永久变量script MA TLAB 命令文件3.4 宗量处理(Augument handling) inputname 实际调用变量名nargchk 输入变量个数检查nargin 函数输入宗量的个数nargout 函数输出宗量的个数nargoutchk 输出变量个数检查varagin 输入宗量varagout 输出宗量3.5 信息显示(Message display)disp 显示矩阵和文字内容display 显示矩阵和文字内容的重载函数error 显示错误信息fprintf 把格式化数据写到文件或屏幕lasterr 最后一个错误信息lastwarn 最后一个警告信息sprintf 按格式把数字转换为串warning 显示警告信息3.6 交互式输入(Interactive input)input 提示键盘输入keyboard 激活键盘做为命令文件pause 暂停uicontrol 创建用户界面控制uimenu 创建用户界面菜单4 基本矩阵函数和操作(Elementary matrices and matrix manipulation)4.1 基本矩阵(Elementary matrices)eye 单位阵linspace 线性等分向量logspace 对数等分向量meshgrid 用于三维曲面的分格线坐标ones 全1 矩阵rand 均匀分布随机阵randn 正态分布随机阵repmat 铺放模块数组zeros 全零矩阵: 矩阵的援引和重排4.2 矩阵基本信息(Basic array information)disp 显示矩阵和文字内容isempty 若是空矩阵则为真isequal 若对应元素相等则为1islogical 尤其是逻辑数则为真isnumeric 若是数值则为真length 确定向量的长度logical 将数值转化为逻辑值ndims 数组A 的维数size 确定矩阵的维数4.3 矩阵操作(Matrix manipulateion)blkdiag 块对角阵串接diag 创建对角阵,抽取对角向量end 数组的长度,即最大下标find 找出非零元素1 的下标fliplr 矩阵的左右翻转flipud 矩阵的上下翻转flipdim 交换对称位置上的元素ind2sub 据单下标换算出全下标reshape 矩阵变维rot90 矩阵逆时针90°旋转sub2idn 据全下标换算出单下标tril 抽取下三角阵triu 抽取上三角阵4.4 特殊变量和常数(Special variables and constants) ans 最新表达式的运算结果eps 浮点相对误差i,j 虚数单位inf 或Inf 无穷大isfinite 若是有限数则为真isinf 若是无穷大则为真isnan 若为非数则为真NaN 或nan 非数pi 3.1415926535897?.realmax 最大浮点数realmin 最小正浮点数why 一般问题的简明答案4.5 特殊矩阵(Specialized matrices) compan 伴随矩阵gallery 一些小测试矩阵hadamard Hadamard 矩阵hankel Hankel 矩阵hilb Hilbert 矩阵invhilb 逆Hilbert 矩阵magic 魔方阵pascal Pascal 矩阵rosser 典型对称特征值实验问题toeplitz T oeplitz 矩阵vander V andermonde 矩阵wilkinson Wilkinson’s 对称特征值实验矩阵5 基本数学函数(Elementary math functions)5.1 三角函数(T rigonometric) acos 反余弦acosh 反双曲余弦acot 反余切acoth 反双曲余切acsc 反余割acsch 反双曲余割asec 反正割asech 反双曲正割asin 反正弦asinh 反双曲正弦atan 反正切atanh 反双曲正切atan2 四象限反正切cos 余弦cosh 双曲余弦cot 余切coth 双曲余切csc 余割csch 双曲余割sec 正割sech 双曲正割sin 正弦sinh 双曲正弦tan 正切tanh 双曲正切5.2 指数函数(Exponential)exp 指数log 自然对数log10 常用对数log2 以2 为底的对数nestpow2 最近邻的2 的幂pow2 2 的幂sqrt 平方根5.3 复数函数(Complex)abs 绝对值angle 相角complex 将实部和虚部构成复数conj 复数共轭cplxpair 复数阵成共轭对形式排列imag 复数虚部isreal 若是实数矩阵则为真real 复数实部unwrap 相位角360°线调整5.4 圆整和求余函数(Rounding and remainder)ceil 朝正无穷大方向取整fix 朝零方向取整floor 朝负无穷大方向取整mod 模数求余rem 求余数round 四舍五入取整sign 符号函数6 特殊函数(Specialized math functions)cart2pol 直角坐标变为柱(或极)坐标cart2sph 直角坐标变为球坐标cross 向量叉积dot 向量内积isprime 若是质数则为真pol2cart 柱(或极)坐标变为直角坐标sph2cart 球坐标变为直角坐标7 矩阵函数和数值线性代数(Matrix functions-numerical linear algebra) 7.1 矩阵分析(Matrix analysis)det 行列式的值norm 矩阵或向量范数normest 估计2 范数null 零空间orth 值空间rank 秩rref 转换为行阶梯形trace 迹subspace 子空间的角度7.2 线性方程(Linear equations)chol Cholesky 分解cholinc 不完全Cholesky 分解cond 矩阵条件数condest 估计1-范数条件数inv 矩阵的逆lu LU 分解luinc 不完全LU 分解lscov 已知协方差的最小二乘积nnls 非负二乘解pinv 伪逆qr QR 分解rcond LINPACK 逆条件数\、/ 解线性方程7.3 特性值与奇异值(Eigenvalues and singular values) condeig 矩阵各特征值的条件数eig 矩阵特征值和特征向量eigs 多个特征值gsvd 归一化奇异值分解hess Hessenberg 矩阵poly 特征多项式polyeig 多项式特征值问题qz 广义特征值schur Schur 分解svd 奇异值分解svds 多个奇异值7.4 矩阵函数(Matrix functions)expm 矩阵指数expm1 矩阵指数的Pade 逼近expm2 用泰勒级数求矩阵指数expm3 通过特征值和特征向量求矩阵指数funm 计算一般矩阵函数logm 矩阵对数sqrtm 矩阵平方根7.5 因式分解(Factorization utility)cdf2rdf 复数对角型转换到实块对角型balance 改善特征值精度的平衡刻度rsf2csf 实块对角型转换到复数对角型8 数据分析和傅里叶变换(Date analysis and Fourier transforms)8.1 基本运算(Basic operations) cumprod 元素累计积cumsum 元素累计和cumtrapz 累计积分hist 统计频数直方图histc 直方图统计max 最大值mean 平均值median 中值min 最小值prod 元素积sort 由小到大排序sortrows 由小到大按行排序std 标准差sum 元素和trapz 梯形数值积分var 求方差8.2 有限差分(Finite differentces) del2 五点离散Laplaciandiff 差分和近似微分gradient 梯度8.3 相关(Correlation)corrcoef 相关系数cov 协方差矩阵subspace 子空间之间的角度8.4 滤波和卷积(Filtering and convoluteion) conv 卷积和多项式相乘conv2 二维卷积convn N 维卷积detrend 去除线性分量deconv 解卷和多项式相除filter 一维数字滤波器fliter2 二维数字滤波器8.5 傅里叶变换(Fourier transforms)fft 快速离散傅里叶变换fft2 二维离散傅里叶变换fftn N 维离散傅里叶变换fftshift 重排fft 和fft2 的输出ifft 离散傅里叶反变换ifft2 二维离散傅城叶反变换ifftn N 维离散傅里叶反变换ifftshift 反fftshift9 音频支持(Audio support)9.1 音频硬件驱动(Audio hardware drivers)sound 播放向量soundsc 自动标刻并播放waveplay 利用系统音频输出设配播放waverecor 利用系统音频输入设配录音9.2 音频文件输入输出(Audio file import and export) auread 读取音频文件(.au)auwrite 创建音频文件(.au)wavread 读取音频文件(.wav)wavwrite 创建音频文件(.wav)9.3 工具(Utilities)lin2mu 将线性信号转换为μ 一律编码的信号mu2lin 将μ 一律编码信号转换为线性信号10 插补多项式函数(Interpolation and polynomials) 10.1 数据插补(Data Interpolation)griddata 分格点数据griddata3 三维分格点数据griddatan 多维分格点数据interpft 利用FFT 方法一维插补interp1 一维插补interp1q 快速一维插补interp2 二维插补interp3 三维插补intern N 维插补pchip hermite 插补10.2 样条插补(Spline Interpolation)ppval 计算分段多项式spline 三次样条插补10.3 多项式(Polynomials)conv 多项式相乘deconv 多项式相除poly 由根创建多项式polyder 多项式微分polyfit 多项式拟合polyint 积分多项式分析polyval 求多项式的值polyvalm 求矩阵多项式的值residue 求部分分式表达roots 求多项式的根1#caidaoyiba11 数值泛函函数和ODE 解算器(Function functions and ODE solvers) 11.1 优化和寻根(Optimization and root finding)fminbnd 非线性函数在某区间中极小值fminsearch 单纯形法求多元函数极值点指令fzero 单变量函数的零点11.2 优化选项处理(Optimization Option handling)optimget 从OPTIONS 构架中取得优化参数optimset 创建或修改OPTIONS 构架11.3 数值积分(Numerical intergration)dblquad 二重(闭型)数值积分指令quad 低阶法数值积分quadl 高阶法数值积分11.4 绘图(Plotting)ezcontour 画等位线ezcontourf 画填色等位线ezmesh 绘制网格图ezmeshc 绘制含等高线的网格图ezplot 绘制曲线ezplot3 绘制3 维曲线ezpolar 采用极坐标绘图ezsurf 画曲面图ezsurfc 画带等位线的曲面图fplot 画函数曲线图11.5 内联函数对象(Inline function object) argnames 给出函数的输入宗量char 创建字符传输组或者将其他类型变量转化为字符串数组formula 函数公式inline 创建内联函数11.6 差微分函数解算器(Differential equation solvers) ode113 变阶法解方程ode15s 变阶法解刚性方程ode23 低阶法解微分方程ode23s 低阶法解刚性微分方程ode23t 解适度刚性微分方程odet23tb 低阶法解刚性微分方程ode45 高阶法解微分方程12 二维图形函数(Two dimensional graphs)12.1 基本平面图形(Elementary X-Y graphs) loglog 双对数刻度曲线plot 直角坐标下线性刻度曲线plotyy 双纵坐标图polar 极坐标曲线图semilogx X 轴半对数刻度曲线semilogy Y 轴半对数刻度曲线12.2 轴控制(Axis control)axes 创建轴axis 轴的刻度和表现box 坐标形式在封闭式和开启词式之间切换grid 画坐标网格线hold 图形的保持subplot 创建子图zoom 二维图形的变焦放大12.3 图形注释(Graph annotation)gtext 用鼠标在图上标注文字legend 图例说明plotedit 图形编辑工具text 在图上标注文字texlabel 将字符串转换为T ex 格式title 图形标题xlabel X 轴名标注ylabel Y 轴名标注12.4 硬拷贝(Hardcopy and printing)orient 设置走纸方向print 打印图形或把图存入文件printopt 打印机设置13 三维图形函数(Three dimensional graphs) 13.1 基本三维图形(Elementary 3-D plots) fill3 三维曲面多边形填色mesh 三维网线图plot3 三维直角坐标曲线图surf 三维表面图13.2 色彩控制(Color control)alpha 透明色控制brighten 控制色彩的明暗caxis (伪)颜色轴刻度colordef 用色风格colormap 设置色图graymon 设置缺省图形窗口为单色显示屏hidden 消隐shading 图形渲染模式whitebg 设置图形窗口为白底13.3 光照模式(Lighting)diffuse 漫反射表面系数light 灯光控制lighting 设置照明模式material 使用预定义反射模式specular 漫反射surfnorm 表面图的法线surfl 带光照的三维表面图13.4 色图(Color maps)autumn 红、黄浓淡色bone 蓝色调灰度图colorcube 三浓淡多彩交错色cool 青和品红浓淡色图copper 线性变化纯铜色调图flag 红-白-蓝黑交错色图gray 线性灰度hot 黑-红-黄-白交错色图hsv 饱和色彩图jet 变异HSV 色图lines 采用plot 绘线色pink 淡粉红色图prism 光谱色图spring 青、黄浓淡色summer 绿、黄浓淡色vga 16 色white 全白色winter 蓝、绿浓淡色13.5 轴的控制(Axis control)axes 创建轴axis 轴的刻度和表现box 坐标形式在封闭式和开启式之间切换daspect 轴的DataAspectRatio 属性grid 画坐标网格线hold 图形的保持pbaspect 画坐标框的PlotBoxAspectRatio 属性subplot 创建子图xlim X 轴范围ylim Y 轴范围zlim Z 轴范围zoom 二维图形的变焦放大13.6 视角控制(V iewpoint control)rotate3d 旋动三维图形view 设定3-D 图形观测点viewmtx 观测点转换矩阵13.7 图形注释(Graph annotation)colorbar 显示色条gtext 用鼠标在图上标注文字plotedit 图形编辑工具text 在图上标注文字title 图形标题xlabel X 轴名标注ylabel Y 轴名标注zlabel Z 轴名标注13.8 硬拷贝(Hardcopy and printing)orient 设置走纸方向print 打印图形或把图存入文件printopt 打印机设置verml 将图形保存为VRML2.0 文件14 特殊图形(Specialized graphs)14.1 特殊平面图形(Specialized 2-D graphs) area 面域图bar 直方图barh 水平直方图comet 彗星状轨迹图compass 从原点出发的复数向量图errorbar 误差棒棒图ezplot 画二维曲线ezpolar 画极坐标曲线feather 从X 轴出发的复数向量图fill 多边填色图fplot 函数曲线图hist 统计频数直方图pareto Pareto 图pie 饼形统计图plotmatrix 散点图阵列scatter 散点图stairs 阶梯形曲线图stem 火柴杆图14.2 等高线及二维半图形(Contour and 2-1/2D graphs) clabel 给等高线加标注contour 等高线图contourf 等高线图contour3 三维等高线ezcontour 画等位线ezcontourf 画填色等位线pcolor 用颜色反映数据的伪色图voronoi V oronoi 图14.3 特殊三维图形(Specialized 3-D graphs)bar3 三维直方图bar3h 三维水平直方图comet3 三维彗星动态轨迹线图ezgraph3 通用指令ezmesh 画网线图ezmeshc 画等位线的网线图ezplot3 画三维曲线ezsurf 画曲面图ezsurfc 画带等位线的曲面图meshc 带等高线的三维网线图meshz 带零基准面的三维网线图pie3 三维饼图ribbon 以三维形式绘制二维曲线scatter3 三维散点图stem3 三维离散杆图surfc 带等高线的三维表面图trimesh 三角剖分网线图trisurf 三角剖分曲面图waterfall 瀑布水线图14.4 内剖及向量视图(V olume and vector visualization) coneplot 锥体图contourslice 切片等位线图quiver 矢量场图quiver3 三维方向箭头图slice 切片图14.5 图像显示及文件处理(Image display and file I/O) brighten 控制色彩的明暗colorbar 色彩条状图colormap 设置色图contrast 提高图像对比度的灰色图gray 线性灰度image 显示图像imagesc 显示亮度图像imfinfo 获取图像文件的特征数据imread 从文件读取图像的数据阵(和伴随色图))imwrite 把强度图像或真彩图像写入文件14.6 影片和动画(Movies and animation)capture 当前图的屏捕捉frame2im 将影片动画转换为编址图像getframe 获得影片动画图像的帧im2frame 将编址图像转换为影片动画movie 播放影片动画moviein 影片动画内存初始化rotate 旋转指令14.7 颜色相关函数(Color related function)spinmap 颜色周期性变化操纵14.8 三维模型函数(Solid modeling)cylinder 圆柱面patch 创建块sphere 球面Surf2patch 将曲面数据转换为块数据15 句柄图形(Handle Graphics)15.1 图形窗的产生和控制(Figure window creation and control) clf 清除当前图close 关闭图形figure 打开或创建图形窗口gcf 获得当前图的柄openfig 打开图形refresh 刷新图形shg 显示图形窗15.2 轴的产生和控制(Axis creation and control) axes 在任意位置创建轴axis 轴的控制box 坐标形式在封闭式和开启式之间切换caxis 控制色轴的刻度cla 清除当前轴gca 获得当前轴的柄hold 图形的保持ishold 若图形处保持状态则为真subplot 创建子图15.3 句柄图形对象(Handle Graphics objects) axex 在任意位置创建轴figure 创建图形窗口image 创建图像light 创建光line 创建线patch 创建块rectangle 创建方surface 创建面text 创建图形中文本uicontextmenu 创建现场菜单对象uicontrol 用户使用界面控制uimenu 用户使用菜单控制15.4 句柄图形处理(Handle Graphics operations) copyobj 拷贝图形对象及其子对象delete 删除对象及文件drawnow 屏幕刷新findobj 用规定的特性找寻对象gcbf “正执行回调操作”的图形的柄gcbo “正执行回调操作”的控件图柄指令gco 获得当前对象的柄get 获得对象特性getappdat 获得应用程序定义数据isappdata 检验是否应用程序定义数据reset 重设对象特性rmappdata 删除应用程序定义数据set 建立对象特性setappdata 建立应用程序定义数据15.5 工具函数(Utilities)closereq 关闭图形窗请求函数ishandle 若是图柄代号侧为真newplot 下一个新图16 图形用户界面工具(Graphical user interface tools) align 对齐用户控件和轴cbedit 编辑回调函数ginput 从鼠标得到图形点坐标guide 设计GUImenu 创建菜单menuedit 菜单编辑propedit 属性编辑uicontrol 创建用户界面控制uimenu 创建用户界面菜单2#caidaoyiba17 字符串(Character string)17.1 通用字符串函数(General)blanks 空格符号cellstr 通过字符串数组构建字符串的元胞数组char 创建字符传输组或者将其他类型变量转化为字符串数组deblank 删除最后的空格double 把字符串变成ASCII 码值eval 执行串形式的MATLAB 表达式17.2 字符串查询(String tests)iscellstr 若是字符串组成的元胞数组则为真ischar 若是字符串则为真isletter 串中是字母则为真isspace 串中是空格则为真isstr 若是字符串则为真17.3 字符串操作(String operations)base2dec X-进制串转换为十进制整数bin2dec 二进制串转换为十进制整数dec2base 十进制整数转换为X 进制串dec2bin 十进制整数转换为二进制串dec2hex 十进制整数转换为16 进制串findstr 在一个串中寻找一个子串hex2dec 16-进制串转换为十进制整数hex2num 16-进制串转换为浮点数int2str 将整数转换为字符串lower 把字符串变成小写mat2str 将数组转换为字符串num2str 把数值转换为字符串strcat 把多个串连接成长串strcmp 比较字符串strcmpi 比较字符串(忽略大小写)strings MA TLAB 中的字符串strjust 字符串的对齐方式strmatch 逐行搜索串strnomp 比较字符串的前N 个字符strncmpi 比较字符串的前N 个字符(忽略大小写)strrep 用另一个串代替一个串中的子串strtok 删除串中的指定子串strvcat 创建字符串数组str2mat 将字符串转换为含有空格的数组str2num 将字符串转换为数值upper 把字符串变成大写18 文件输入/输出(File input/output)clc 清除指令窗口disp 显示矩阵和文字内容fprintf 把格式化数据写到文件或屏幕home 光标返回行首input 提示键盘输入load 从磁盘中调入数据变量pause 暂停sprintf 写格式数据到串sscanf 在格式控制下读串19 时间和日期(T ime and dates)clock 时钟cputme MA TLAB 战用CPU 时间date 日期etime 用CLOCK 计算的时间now 当前时钟和日期pause 暂停tic 秒表启动toc 秒表终止和显示20 数据类型(Data types and structures)20.1 数据类型(Data types)cell 创建元胞变量char 创建字符传输组或者将其他类型变量转化为字符串数组double 转化为16 位相对精度的浮点数值对象function handle 函数句柄inline 创建内联函数JavaArray 构建Java 数组JavaMethod 调用某个Java 方法JavaObject 调用Java 对象的构造函数single 转变为单精度数值sparse 创建稀疏矩阵struct 创建构架变量uint8(unit16、unit32) 转换为8(16、32)位无符号整型数int8(nit16、nit32) 转换为8(16、32)位符号整型数20.2 多维数组函数(Multi-dimensional array functions) cat 把若干数组串接成高维数组ndims 数组A 的维数ndgrid 为N-D 函数和插补创建数组ipermute 广义反转置permute 广义非共轭转置shiftdim 维数转换squeeze 使数组降维20.3 元胞数组函数(Cell array functions)cell 创建元胞变量celldisp 显示元胞数组内容cellfun 元胞数组函数cellplot 图示元胞数组的内容cell2struct 把元胞数组转换为构架数组deal 把输入分配给输出is cell 若是元胞则为真num2 cell 把数值数组转换为元胞数组struct2 cell 把构架数组转换为元胞数组20.4 构架函数(Structure functions)fieldnames 获取构架的域名getfield 获取域的内容isfield 若为给定构架的域名则为真isstruct 若是构架则为真rmfield 删除构架的域setfield 指定构架域的内容struct 创建构架变量20.5 函数句柄函数(Function handle functions)@ 创建函数句柄functions 列举函数句柄对应的函数func2str 将函数句柄数组转换为字符串str2func 将字符串转换为函数句柄20.6 面向对象编程(Object oriented programming functions) dlass 查明变量的类型isa 若是指定的数据类型则为真inferiorto 级别较低isjava 若是java 对象则为真isobject 若是对象则为真methods 显示类的方法名substruct 创建构架总量superiorto 级别较高21 示例(E xamples and demonstrations)demo 演示程序flow 无限大水体中水下射流速度数据intro 幻灯演示指令peaks 产生peaks 图形数据22 符号工具包(Symbolic Math T oolbox) 22.1 微积分(Calculus)diff 求导数limit 求极限int 计算积分jacobian Jacobian 矩阵symsum 符号序列的求和trylor T rylor 级数22.2 线性代数(Linear Algebra)det 行列式的值diag 创建对角阵,抽取对角向量eig 矩阵特征值和特征向量expm 矩阵指数inv 矩阵的逆jordan Jordan 分解null 零空间poly 特征多项式rank 秩rref 转换为行阶梯形svd 奇异值分解。
matlab笔记整理(部分代码含示例)【MATLAB入门必备】

matlab笔记整理(部分代码含例子)一元二次方程:方法一:p=[1,-3,1];x=roots(p)画图:x=-5:0.1:5;y1=x.*x-3*x+1;y2=zeros(size(x));plot(x,y1,x,y2);方法二:f=@(x)x*x-3*x+1;x1=fzero(f,0.5)x2=fzero(f,2.5)方法三:f=@(x)x*x-3*x+1;x1=fsolve(f,0.5,optimset('Display','off'))x2=fsolve(f,2.5,optimset('Display','off'))方法四:syms xx=solve(x^2-3*x+1)x=eval(x)求复数的实部:real求复数的虚部:imag命令输出格式:format(format long → format)(format rat 以有理数形式输出)求自然指数:exp三角函数以角度为单位的函数要再函数名后面加"d"abs函数可以求实数的绝对值、复数的模、字符串(要加引号)的ASCII码值取整:round(四舍五入)ceil(大于等于这个数的第一个整数)floor(小于等于这个数的第一个整数)fix(舍弃小数)取个位,十位,百位数字实例:(rem取余)m=345;m1=rem(m,10)m2=rem(fix(m/10),10)m3=fix(m/100)判断素数例子:(isprime(n),当n是素数时返回1,否则返回0)x=1:100;k=isprime(x);k1=find(k); //寻找k向量中非零元素的"序号"p=x(k1) //输出x中的全部素数开根号:sqrt()exp(pi/2):e的Π/2方预定义单位:i,j虚数单位NAN代表非数who命令和whos命令:who:工作区变量有哪些whos:变量的详细情况行向量的生成:1、冒号表达式2、linspace(a,b,n) n为元素总数结构矩阵:(格式:结构矩阵元素.成员名=表达式)a(1).x1=10;a(1).x2='liu';a(1).x3=[11,21;34,78];a(2).x1=12;a(2).x2='wang';a(2).x3=[34,191;27,578];a(3).x1=14;a(3).x2='cai';a(3).x3=[13,890;67,231];单元矩阵:(用大括号把元素括起来)b={10,'liu',[11,21;34,78];12,'wang',[34,191;27,578];...14,'cai',[13,890;67,231]}矩阵的引用:1、A(3,2):A矩阵第3行第2列元素2、通过序号来引用(矩阵元素先储存第一列元素,再储存第二列元素。
matlab分支结构

matlab分支结构
在MATLAB中,分支结构是一种用来根据条件决定执行不同
代码块的结构。
MATLAB提供了最常用的分支结构为if 语句。
if 语句的基本语法如下:
if 条件
执行代码块1
else
执行代码块2
end
其中,条件是一个逻辑表达式,如果条件为真,则执行代码块1,否则执行代码块2。
实际使用中,还可以使用else if语句来判断多个条件,语法如下:
if 条件1
执行代码块1
elseif 条件2
执行代码块2
else
执行代码块3
end
此外,MATLAB还提供了一种简洁的三元运算符 ?: 用于实现
简单的分支判断。
语法如下:
结果 = 条件 ? 值1 : 值2
如果条件为真,则结果等于值1,否则结果等于值2。
matlab3

2. 3. 4.
命令文件和函数文件的比较 命令文件 函数文件
参数 无输入、输出参数 既可以有输入参数 也可以有输出参数 数据 全局变量 为局部变量 也可设全局变量 应用 一连串费时的指令 扩充函数库 特殊的应用
创建 类型
2、M文件——创建
M文件是一个文本文件,它可以用任何编辑程序来建立和编辑, 而一般常用且最为方便的是使用MATLAB提供的文本编辑器
2、M文件——类型
m文件有两类
独立的m文件 — 称命令文件(script file) 可调用m文件 — 称函数文件(function file)
2、M文件——类型
匿名函数
二 、matlab的程序结构
matlab语言的程序结构与其它高级语言是一致的
分为 顺序结构 循环结构 分支结构
matlab的程序结构——顺序结构
按照语句的顺序执行
输入 输出 暂停
Matlab的程序结构——顺序结构
输入——input
提示用户从键盘输入数值、字符串、表达式 并接受该输入 格式: 1、a=input(‘字符串’)
% 第一种方式:
num = xlsread('examp4_3_1.xls','A2:H4')
% 第二种方式:
num = xlsread('examp4_3_1.xls',1,'A2:H4')
% 第三种方式:
num = xlsread('examp4_3_1.xls','Sheet1','A2:H4')
MATLAB编程语言结构

编程语言结构一、条件语句结构1.单分支if语句调用格式:if条件表达式执行语句体end2.双分支if语句调用格式:if条件表达式执行语句体1else执行语句体2end3.多分支if语句调用格式:if条件表达式1执行语句体1else if 条件表达式2执行语句体2……………………else if 条件表达式n-1执行语句体n-1else执行语句体nend4.swich 语句调用格式:switch 开关表达式case 表达式1执行语句体1case 表达式2执行语句体2…………………….case 表达式n-1执行语句体n-1otherwise执行语句体nend二、循环语句结构1.for 语句调用格式:for 循环变量=初值:步长:终值循环语句体end2.while 语句调用格式为:while 条件表达式循环语句体 end三、实验举例1. 已知分段函数sin ,01,0x x y x x ⎧≠⎪=⎨⎪=⎩,求 2.1x =的值。
x=input(‘请输入x=’)if x==0y=1;elsey=sin(x)/x;endy2. 求 1001i i =∑的值a=0;for i=1:100;a=a+i;enda3. 计算222225895.s =++++s=0;i=2;while i<=95s=s+s^2;i=i+3;ends。
MATLAB基本语法详细说明

M A T L A B基本语法详细说明(总10页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--Matlab语法第一节基本数值计算1. 变量:分为数值变量和字符变量2. 常量:计算机中不变的量。
如i、j、pi、NaN(不确定)、Inf(无穷大)3. 字符变量:将字符串作为变量。
有三种方法表示:(1) 用单引号' '(2) 用函数sym(' ')(3) 用命令symbs4. 举例x=2 % 将2赋给变量xy=3; % 有;表示在命令窗口不显示y的值z=x^2 -y % 数值计算。
输出结果为1f='sin(x)' % 用单引号定义一个字符变量g=sym('cos(y)') % 用函数sym(' ')定义一个字符变量syms a b % 用命令syms定义字符变量。
一般用于多符号变量的定义u=2*a % 字符计算。
输出结果为2*aw=b^2-1 % 字符计算。
输出结果为b^2-1fg=f+g % 字符计算。
输出结果为sin(x)+cos(y)uw=u*w % 字符计算。
输出结果为2*a*(b^2-1)u/w % 字符计算。
输出结果为2*a/(b^2-1)第二节矩阵构造及运算Matlab中数据的结构形式就是一个矩阵。
如x=2是一个1×1的矩阵1. 矩阵的建立(1) 直接输入法。
(2) 冒号法(1×N)。
(3) 函数法(特殊矩阵)。
(4) 矩阵的编辑(Array Editor)。
2. 向量向量是1×N的特殊矩阵,即只有一行或者一列,称为N维向量。
3. 向量的点积与叉积点积:dot(A,B)叉积:cross(A,B)4. 举例:x=[1 2 3; 4 5 6; 7 8 9] % [...],元素之间用空格,行之间用分号。
y=0: :1 % 不用[...],初值、步长、终值间用冒号。
Matlab 语句

y=’中等’
case 6
y=’及格’
otherwise
y=’不及格’
end
练习三:将例3写入M-文件编辑器,然后在command window 调用这个程序。
3 循环结构
与脚本M文件不同的是,调用函数M文件时需要输入自变量的实际值。
随便打开一个M-文件看一看:
open lsqlin
编程实例
例7. 定义一个函数 f(x)=[sin(x)]2, 其中x以“度”为单位。然后再调用该函数。
解:在M-文件编辑器内写入下面的文件:
循环结构的流程图如图4所示它可以多次重复执行某一组语句。循环是计算机解决问题的主要手段。
在MATLAB中,循环结构可以由两种语句结构实现。
(1) for…end 循环结构。其格式为:
for i=V,循环体结构,end
其中V为一个行向量,循环变量i每次从V中取一个数值,执行一次循环体的内容,如此下去,直到完成V中的所有分量,就自动结束循环体的执行。
(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
前面的几个例题都是脚本文件的类型。
2、函数M文件
MATLAB的M-函数是由function语句引导的,其基本格式如下:
function [输出形参列表] = 函数名 (输入形参列表)
rt MATLAB介绍

a b s (x ) s q rt(x ) ro u n d (x ) fix (x ) flo o r(x ) c e il(x ) s ig n (x ) re m (x ,y ) e x p (x ) lo g (x ) L o g 2 (x ) lo g 1 0 (x )
三角函数 Matlab 中的三角函数把角度表示为弧度 可用的函数包括 sin(x), cos(x), tan(x), asin(x), acos(x), atan(x)。 其余的三角函数可以通过相应的关系计算,例如 sec(x)=1/cos(x)
3
3
MATLAB是一种超高级语言。MATLAB平台本身是用C语言写成的,其 中汇集了当前最新的数学算法库,是许多专业数学家和工程学者多年 的劳动结晶。使用MATLAB意味着站在巨人的肩膀上观察和处理问题, 所以在编程效率,程序的可读性、可靠性和可移植性上远远超过了常 规的高级语言。这使得MATLAB成为了进行科学研究和数值计算的首 选语言。 MATLAB计算精度很高。MATLAB中数据是以双精度存储的,一个实数 采用8字节存储,而一个复数则采用16字节存储。通常矩阵运算精度 高达1015以上,完全能够满足一般工程和科学计算的需要。与其它语 言相比,MATLAB对计算机内存、硬盘空间的要求也是比较高的。
27
二、Matlab 绘图
28
一、二维绘图
plot —— 最基本的二维图形指令 plot(x,y) —— 基本格式,以y(x)的函数关系作出直角 坐标图,如果y为n×m的矩阵,则以x 为自变量,作出 m条曲线 plot(x1,y1,x2,y2) —— 多条曲线绘图格式
29
plot(x,y,’s’) —— 开关格式,开关量字符串s设定曲线
2024(完整版)MATLAB自学教程

01 MATLABChapterMATLAB概述与特点发展历程及应用领域发展历程应用领域安装与界面介绍安装用户可以从MathWorks官网下载MATLAB安装程序,根据提示完成安装过程。
安装过程中需要选择安装路径、添加环境变量等步骤。
界面介绍MATLAB界面包括命令窗口、工作空间、当前目录窗口、命令历史窗口等部分。
用户可以在命令窗口中输入命令并执行,工作空间展示当前变量和函数,当前目录窗口显示当前工作路径下的文件和文件夹,命令历史窗口记录用户输入的命令历史。
01020304变量与数据类型条件语句与循环语句数组与矩阵操作函数编写与调用基本操作入门02数据类型与运算规则Chapter整数类型包括有符号和无符号整数,如int8、uint8、int16、uint16等。
浮点数类型包括单精度和双精度浮点数,如single、double。
特殊数值如Inf表示无穷大,-Inf表示负无穷大,NaN表示非数字。
字符数组01字符串操作02字符编码03逻辑型数据逻辑函数逻辑运算逻辑值(~)等逻辑运算符。
逻辑真(true)和逻辑假(false)。
数组与矩阵运算规则数组创建数组索引矩阵运算特殊矩阵03程序设计基础ChapterMATLAB 中变量名区分大小写,以字母开头,可包含字母、数字和下划线,不能是MATLAB保留字。
变量命名规则变量作用域特殊变量局部变量只在其所在的函数或脚本中有效,全局变量在整个MATLAB 工作环境中都有效。
MATLAB 提供了一些特殊变量,如ans 、pi 、i 或j (虚数单位)等,可以直接使用。
变量命名规则及作用域条件语句if-else语句用于根据条件执行不同的代码块,switch-case语句用于多分支选择。
循环语句for循环用于指定次数的重复执行,while循环用于满足条件时的重复执行。
流程控制语句break语句用于提前退出循环,continue语句用于跳过本次循环的剩余部分。
条件语句和循环语句应用函数定义MATLAB 中可以使用function 关键字定义函数,包括输入参数、输出参数和函数体。
Matlab程序命令(3)

Matlab程序命令(3)Matlab程序命令(三):使用Matlab进行回归%A矩阵为36×217的矩阵,即用1978-2013年31个省(直辖市、自治区)国内生产总值、人口、财政收入、财政支出、固定资产投资、全社会消费品零售总额、进出口数据组成的矩阵。
y=A(:,1); %提取A矩阵中的第1列x1=A(:,2); %提取A矩阵中的第2列x2=A(:,4); %提取A矩阵中的第4列x=horzcat(x1,x2); %把x1,x2横排vnames=strvcat('y','x1','x2'); %命名变量result=ols(y,x); %用ols回归prt(result,vnames) %对回归结果进行格式化并命名Ordinary Least-squares EstimatesDependent Variable = yR-squared = 0.9929Rbar-squared = 0.9927sigma^2 = 226704.9623Durbin-Watson = 0.2427Nobs, Nvars = 36, 2*************************************************************** Variable Coefficient t-statistic t-probabilityx1 0.512321 5.737780 0.000002x2 4.703050 53.340145 0.000000plt(result) %显示回归结果拟合值与实际值,残差的图形关于ols回归函数,可以使用help ols命令查看function results=ols(y,x)% PURPOSE: least-squares regression%---------------------------------------------------% USAGE: results = ols(y,x)% where: y = dependent variable vector (nobs x 1)% x = independent variables matrix (nobs x nvar)%---------------------------------------------------% RETURNS: a structure% results.meth = 'ols'% results.beta = bhat% results.tstat = t-stats% results.yhat = yhat% results.resid = residuals% results.sige = e'*e/(n-k)% results.rsqr = rsquared% results.rbar = rbar-squared% results.dw = Durbin-Watson Statistic% results.nobs = nobs% results.nvar = nvars% results.y = y data vector% --------------------------------------------------% SEE ALSO: prt(results), plt(results)%---------------------------------------------------help olsContents of ols:FDELW2 - [wswdel,wwsdel,wmatdel]=fdelw2(xcoord,ycoord) FOLS2 - [ bmax, srds, prhigher, emax, maxlik]=fols2(x, y) fmess_car2 - [bmax, srds, prhighers, emax, logliks]=fmess_car2(x, y, d) mprint - PURPOSE: print an (nobs x nvar) matrix in formatted form x_ols2_ga1 - This example script estimates some election data via ols and MESS-AR.ols is both a directory and a function.PURPOSE: least-squares regression---------------------------------------------------USAGE: results = ols(y,x)where: y = dependent variable vector (nobs x 1)x = independent variables matrix (nobs x nvar)---------------------------------------------------RETURNS: a structureresults.meth = 'ols'results.beta = bhat (nvar x 1)results.tstat = t-stats (nvar x 1)results.bstd = std deviations for bhat (nvar x 1)results.yhat = yhat (nobs x 1)results.resid = residuals (nobs x 1)results.sige = e'*e/(n-k) scalarresults.rsqr = rsquared scalarresults.rbar = rbar-squared scalarresults.dw = Durbin-Watson Statisticresults.nobs = nobsresults.nvar = nvarsresults.y = y data vector (nobs x 1)results.bint = (nvar x2 ) vector with 95% confidence intervals on beta --------------------------------------------------- SEE ALSO: prt(results), plt(results)---------------------------------------------------result = ols(y,x); %最小二乘法bhat = result.beta; % β估计结果disp(`The R-squared is:'); %显示拟合优度R2result.rsqr %拟合优度R2disp(`The 2nd t-statistic is:'); %显示第二个t统计量result.tstat(2,1) %第二个t统计量result.tstat(1,1) %第一个t统计量result.resid %显示残差result.y %显示y变量result.x %显示x变量prt(result) %对回归结果进行格式化Ordinary Least-squares EstimatesR-squared = 0.9929Rbar-squared = 0.9927sigma^2 = 226704.9623Durbin-Watson = 0.2427Nobs, Nvars = 36, 2*************************************************************** Variable Coefficient t-statistic t-probabilityvariable 1 0.512321 5.737780 0.000002variable 2 4.703050 53.340145 0.000000result = ols(y,x); %使用最小二乘法回归prt(result) %对回归结果进行格式化;bill_clinton = ols(y,x); %关于左边字母的使用,可以使用其他字母result2 = ols(y,x); %关于左边字母的使用,可以使用其他字母restricted = ols(y,x); %关于左边字母的使用,可以使用其他字母unrestricted = ols(y,x); %关于左边字母的使用,可以使用其他字母The regression function library is in a subdirectory regress.(回归函数库在子目录中)regression function library(回归函数库)ar_g %Gibbs sampling Bayesian autoregressive model(pjlv7中有此函数)查看ar_g函数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
if 条件分支结构
¾ elseif 一个if结构中可以有若干个elseif从句(0或者 多个) ¾ else 一个if结构中最多有一个else从句(0或1个) ¾ end 每个if结构都要以关键字end结尾。注意此处 的关键字end和返回相应坐标的最大值的函数 end完全不同。
“自上而下”的程序设计流程
>> reshape(1:9,3,3) >= magic(3) >> 1:9 >= 1:10
特别要注意区分 == 和 =
¾ == 关系运算符,用于检测相等关系返回“逻辑 真”或“逻辑假”的结果. ¾ = 赋值运算符,将符号右边表达式的值赋予符 号左边的变量.
逻辑运算符
逻辑表达式
>> pi & exp(1) >> ’a’ & ’b’ >> ~eye(2) >> xor(eye(2),1) >> eye(2) | zeros(2) >> eye(2) & [1,2,0,3]
极坐标图
polar ( theta , r , LineSpec )
未完待续……
例 3 编写一段MATLAB程序用于计算如下分 段函数 f(x,y) .
⎧ x+ y ⎪ x + y2 ⎪ f ( x, y ) = ⎨ 2 ⎪x +y 2 2 ⎪ + x y ⎩
x ≥ 0, y ≥ 0 x ≥ 0, y < 0 x < 0, y ≥ 0 x < 0, y < 0
按“自上而下”流程解决问题
Block 1
Block 2
Block 3
switch 条件结构
¾ switch
switch_expr 可以是一个标量或者字符型变量.
¾ case
可以有一个或多个 case 从句. 如果有多个switch_expr 的值都执行同一段代码,可以用花括号{ } 将这些值括起来. case { case_expr1, case_expr2, case_expr3 }
例 10 将前述四条曲线绘制在一个 2×2 的 子图系统中。
绘图线型的增强控制
plot ( x , y , ’LineSpec’ , ’PropertyName’ , value , … ) ¾ PropertyName
LineWidth MarkerEdgeColor MarkerFaceColor MarkerSize
axis([xmin,xmax,ymin,ymax]) axis on axis off axis square axis equal axis normal axis tight v = axis “axis square” 等同于 “axis(‘square’)”. 只有那些 带有字符串参数的函数可以 视为命令。
伪代码
4. 将算法改成MATLAB语句
5. 测试程序
使用各种不同的值测试程序 f(2,3) f(2,-3) f(-2,3) f(-2,-3) f(a,b)
有用的编程技巧
¾ 注释 % comments
定义行, 描述, 变量列表 每一段程序前和中的注释 Ctrl+R Ctrl+T
¾ M文件的调用
文件名 ( 不带 “.m”)
¾ 设置断点调试程序
Set breakpoints, Run, Step In
嵌套式 if 条件结构
if expr_1 …… if expr_2 …… if expr_3 …… end end end 千万注意 if 和 end 关键 词的数量匹配. 嵌套结构中的每个 if 条 件结构都可以有自己的 elseif 和 else 从句.
¾ \bf \it \rm
P194~195
¾ \fontname{ fontname } ¾ \fontsize{ fontsize } ¾ _{ xxx } ¾ \inf ¾ \\ \_ \neq \^ ^{ xxx } \circ \{ \} \leftarrow ¾ \alpha \beta \pi \sigma \Sigma
MATLAB Help Æ Search Æ Text Properties
文本字符串的增强控制
>> title(’\ity = A*\rmsin (\it\omegat)’) >> title(’\it\fontsize{20}y = A*\rmsin(\it\omegat)’) >> title(’\fontsize{20}\itE_{x} = E_{x0}e^{-jkx}’) >> title(’\fontsize{20}\nabla\times\itE = … -\partialD/\partialt’)
分支与循环
¾ 分支 根据条件执行指定部分的程序代码 ¾ 循环 使指定部分的程序代码反复执行
if 条件分支结构
if control_exp_1 statement 1 statement 2 elseif control_exp_2 statement 1 statement 2 else statement 1 statement 2 end Block 3 Block 2 Block 1
1. 清晰的描述待解决的问题
使程序的要求更加清楚具体
2. 定义程序需要的输入变量和返回的输出变量
做一个输入输出变量列表并对每个变量进行说明
3. 设计程序中需要用到的算法
分解 把问题分解成可以独立解决的若干个小任务 逐步完善 用伪代码描述出算法
“自上而下”的程序设计流程
4. 将算法转换为MATLAB语句
逐步完善
Prompt the user for the values of x and y Read x and y if x >= 0 and y >=0 fun Å x + y elseif x >=0 and y<0 fun Å x + y^2 elseif x < 0 and y >= 0 fun Å x^2 + y else fun Å x^2 + y^2 end Write out f(x,y)
例 7 绘制如下椭圆:
x2 y 2 + =1 4 9
查看这些 “axis *” 语 句产生的不同效果
一个坐标轴上绘制多条曲线
¾ plot(x1,y1,x2,y2,…); ¾ plot(x1,y1); hold on; plot(x2,y2); hold off;
例 8 描绘一个向右传播的正弦电磁波.
>> plot ( t, sin(2*t), '-mo', 'LineWidth', 2, ... 'MarkerEdgeColor', 'k', 'MarkerFaceColor', ... [.49 1 .63],'MarkerSize',12)
文本字符串的增强控制
tAB Help Æ Search Æ is*
运算优先级
1. 算术运算
1) 括号 ( ) 2) 乘方 ^ .^ 3) 乘除法 * .* / ./ \ .\ 4) 加减法 + -
2. 关系运算 3. 逻辑运算
1) 逻辑非 ~ 2) 逻辑和 & 3) 逻辑或 |
从左到右
例 1 设a, b, c, d 定义如下,试推断以下表达 式的运行结果。
在M文件编辑调试器中 写程序!
嵌套式 if 条件结构
if expr_1 …… elseif expr_2 …… else …… end
if expr_1 …… else if expr_2 …… else …… end end
尽可能使用带 elseif 从句的单一 if 条件结构, 而不使用嵌套式 if 条件结构.
Chapter 3
分支语句
本章我们将学习
¾ 关系运算符和逻辑运算符 ¾ 分支语句 ¾ “自上而下”的程序设计流程 ¾ 进一步的绘图方法
MATLAB中表示逻辑“真”与“假”
TRUE FALSE 非零值 零
关系运算符
关系表达式
a1 op a2 若表达式为“真”,则返回值为1; 若表达式为“假”,则返回值为0. >> 2 > 4 >> 2 ~= 4 >> ’a’ > ’b’ “ 1:3 > 1”的 运行结果是 什么?
a=2
⎡1 −2 ⎤ b=⎢ ⎥ ⎣0 10 ⎦
⎡0 1⎤ c=⎢ ⎥ ⎣2 0⎦
>> ~(a > b) >> a > c & b > c >> c <= d
⎡ −2 1 2 ⎤ d=⎢ ⎥ ⎣ 0 1 0⎦
例 2 设a, b, c, d 定义如下,试推断以下表达 式的运行结果。 a=2 ; c=0 ; >> a * b ^ 2 > a * c >> isinf(a/b) >> isinf(a/c) >> isempty(c) >> a > b & ischar(d) b = -2 ; d = ’Test’ ;
1. 描述任务 对用户给定的 x 和 y 的值,计算函数值 f(x,y) 2. 定义输入输出变量
x y -- First independent variable -- Second independent variable
fun -- Resulting function
3. 设计算法 分解 Read the input values of x and y Calculate f(x,y) Write out the result