(完整版)MATLAB基本语法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在MATLAB中,变量和常量的标识符最长允许19个字符,标识符中第一个字符必须是英文字母。MATLAB区分大小写,默认状态下,A和a被认为是两个不同的字符。(case sensitive)
一、数组和矩阵
(一)数组的赋值
数组是指一组实数或复数排成的长方阵列。它可以是一维的“行”或“列”,可以是二维的“矩形”,也可以是三维的甚至更高的维数。在MATLAB中的变量和常量都代表数组,赋值语句的一般形式为
变量=表达式(或数)
如键入a=[1 2 3; 4 5 6; 7 8 9]则将显示结果:
a=
1 2 3
4 5 6
7 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.000i
3.000+3.000i
4.000+4.000i
以上两式结果相同。注意,在第二式中“*”不能省略。
在复数运算中,有几个运算符是常用的。运算符“′”表示把矩阵作共轭转置,即把矩阵的行列互换,同时把各元素的虚部反号。函数conj表示只把各元素的虚部反号,即只取共轭。若想求转置而不要共轭,就把conj和“′”结合起来完成。例如键入
w=z′,u=conj(z),v=conj(z)′
可得 w=1.000-1.000i 3.000-3.000i
2.000-2.000i 4.000-4.000i
u=1.000-1.000i 2.000-2.000i
3.000-3.000i
4.000-4.000i
v=1.000+1.000i 3.000+3.000i
二、逻辑判断与流程控制 (一)关系运算
关系运算是指两个元素之间数值的比较,一共有六种可能。如表M-8所列。
关系运算的结果只有两种可能,即0或1。
0表示该关系式为“假”,1表示该关系式为“真”。
(三)基本的流程控制语句
⑴if条件执行语句
格式: if 表达式语句, end
if 表达式1 语句组A, else 语句组B, end
if 表达式1 语句组A, elseif 表达式2 语句组B, else 语句组C, end 执行到该语句时,计算机先检验if后的逻辑表达式,为1则执行语句A;如为0则跳过A 检验下一句程序,直到遇见end,执行end后面的一条语句。
⑵while循环语句
格式: while 表达式语句组A, end
执行到该语句时,计算机先检验while后的逻辑表达式,为1则执行语句A;到end处,它就跳回到while的入口,再检验表达式,如仍为1则再执行语句A,直到结果为0,就跳过语句组A,直接执行end后面的一条语句。
⑶for循环语句
格式: for k=初值:增量:终值语句组A, end
将语句组A重复执行N次,但每次执行时程序中k值不同。增量缺省值为1。
⑷switch多分支语句
格式: switch 表达式(标量或字符串)
case 值1
语句组A
case 值2
语句组B
……………
otherwise
语句组N
end
当表达式的值与某case语句中的值相同时,它就执行该case语句后的语句组,然后直接跳到终点的
保留的常数
eps—机器的浮点运算误差限。PC机上eps的默认值为2.2204*10^-16,若某个量的绝对值小于eps,则可以认为这个量为0。
i和j—若i或j量不被改写,则它们表示纯虚数量j。但在MATLAB程序编写过程中经常事先改写这两个变量的值,如在循环过程中常用这两个变量来表示循环变量,所以应该确认使用这两个变量时没被改写。如果想恢复该变量,则可以用语句i=sqrt(-1)设置,即对-1求平方根。
Inf—无穷大量+∞的MATLAB表示,也可以写成inf。同样地,-∞可以表示为-Inf。在MATLAB程序执行时,即使遇到了以0为除数的运算,也不会终止程序的运行,而只给出一个“除0”警告,并将结果赋成Inf,这样的定义方式符合IEEE的标准。从数值运算编程角度看,这样的实现形式明显优于C这样的非专业语言。
NaN—不定式(not a number),通常由0/0运算、Inf/Inf及其他可能的运算得出。NaN 是一个很奇特的量,如NaN与Inf的乘积仍为NaN。
pi—圆周率π的双精度浮点表示。
lasterr—存放最新一次的错误信息。此变量为字符串型,如果在本次执行过程中没出现这错误,则此变量为空字符串。
lastwarn—存放最新的警告信息。若未出现过警告,则此变量为空字符串。
保留的变量
ans—存放最近一次无赋值变量语句的运算结果。
end—最后一行(列)
nargin—函数输入变量的实际个数
nargout—函数返回变量的实际个数
保留字
%—后接注释
数据结构
一、数值型结构
MATLAB语言中最常用的数值量为双精度浮点数,占8个字节(PS:与JAVA的double 型相同)(64位),遵从IEEE记数法,有11个指数位、53位尾数及一个符号位,值域的近似范围为-1.7*10^308至1.7*10^308,其MATLAB表示为double()。考虑到一些