Matlab变量、分⽀语句和循环语句
⼀、Matlab的变量
1、变量的命名
Matlab的变量名由数字、字母和下划线组成,但是只能由字母开头。⼤⼩写敏感,最⼤长度为63个字符,不能使⽤Matlab的关键字作为变量名,应当避免使⽤函数名作为变量名,如果变量名采⽤函数名,则该函数失效。
Matlab提供了isvarname函数来验证⽤户指定的变量名是否为Matlab接受的合法变量名。该函数返回1或0,分别代表合法或者不合法。
>> isvarname('_var')
ans =
>> isvarname('var_123')
ans =
1
2、变量的类型
Matlab中的变量共分为三类:局部变量、全局变量和永久变量。
局部变量不⽤多说,和其他的编程语⾔是同样的含义,局部变量存储在函数的⼯作空间中,当函数调⽤结束之后,局部变量随之被删除。
全局变量在整个Matlab的⼯作空间中都有效。当在⼀个⼯作空间中改变该值的时候,该变量在其余空间内的值也将被改变。全局变量的声明格式如下:
>> global X_val
>> X_val=3;
>> X_val
X_val =
3
永久变量可以⽤persistent声明,只能在M⽂件函数中定义和使⽤;改变了只允许声明它的函数才能使⽤的规则。当声明它的函数退出时,永久变量继续保存在内存中。
persistent a
3、特殊变量和关键字
特殊变量是指Matlab预定义的具有默认意义的变量,如下表:
变量含义变量含义
ans⽤作结果的缺省变量名beep使得计算机发出“嘟嘟”声
pi圆周率eps机器零阈值,浮点精度限(2.2204*10^-16),MATLAB中的最⼩数
inf表⽰⽆穷⼤,如1/0NaN表⽰不定数,即结果不能确定,例如0/0
j或i虚数nargin函数的输⼊参数个数
nargout函数的输出参数个数Realmin可⽤的最⼩正实数
realmax可⽤的最⼤正实数bitmax可⽤的最⼤正整数(以双精度格式存储)
varargin可变函数的输⼊参数个数varargout可变函数的输出参数个数
varargin可变函数的输⼊参数个数varargout可变函数的输出参数个数
变量含义变量含义
Matlab中有20个关键字,可以使⽤iskeyword命令来查看。
>> reshape(iskeyword,5,4)
ans =
'break''else''global''return'
'case''elseif''if''spmd'
'catch''end''otherwise''switch'
'classdef''for''parfor''try'
'continue''function''persistent''while'
⼆、分⽀结构
Matlab中可⽤的分⽀结构有三种,分别是if-else-end结构、switch-case结构和try-catch结构。
1、if-else-end结构
(1)如果可选择的执⾏命令组只有⼀组,则调⽤下⾯的结构:
if expression
commands
end
(2)如果可选择的执⾏命令组有两组,则调⽤下⾯的结构
if expression
commands1 %如果条件为真则执⾏commands1
else
commands2 %如果条件为假则执⾏commands2
end
(3)如果可选择的执⾏命令组有n(n>2)组,则调⽤下⾯的结构
if expression1
commands1 %如果条件expression1为真则执⾏commands1
elseif expression2
commands2 %如果条件expression2为真则执⾏commands2
...
else
commandsn %如果前⾯的所有条件都不满⾜就执⾏最后⼀条
end
2、switch-case结构
switch value %value为要进⾏判断的标量或字符串
case test1
commands1 %如果value的值等于test1,执⾏commands1
case test2 %如果value的值等于test2,执⾏commands2
commands2
...
otherwise
commandsn %如果所有的条件都不满⾜就执⾏这条命令
end
注意:case后的检测值不仅可以是⼀个标量值或⼀个字符串,还可以是⼀个元胞数组,如果检测是⼀个
元胞数组,则Matlab将value与元胞数组中的每⼀个元素都进⾏⽐较,如果有⼀个元素相等就认为匹配成功,从⽽执⾏该次检测相对应的命令组。
3、try-catch结构
try
command1 %命令组command1⾸先被执⾏,若正确,则catch下的命令组将不会被执⾏
catch
command2 %如果command1命令组执⾏出错了,那么该命令组将会被执⾏
end
如果在catch下的command2的命令组的执⾏过程也出错了,那么Matlab将停⽌运⾏。try-catch结构在程序调试场合⾮常有⽤。
三、循环结构
1、for循环
例如求解1+2+3+….+99+100的和
>> sum=0;
>> for i=1:100
sum=sum+i;
end
>> sum
sum =
5050
实际上for后边的i是⼀个数组,for循环每执⾏⼀次,i就取矩阵中的下⼀个值,例如:
>> for i=[1,3,5]
sum=sum+i;
end
>> sum
sum =
9
2、while循环
我们还是求上边的那个1——100的和,使⽤while循环。
>> sum=0;
>> i=1;
>> while i<=100
sum=sum+i;
i=i+1;
end
>> sum
sum =
5050
while循环和for循环的区别就是,while循环事先不知道要循环多少次,⽽for循环是按照之前设置好的次数来循环的。
四、其他常⽤控制命令
1、input和keyboard命令
input命令将Matlab的控制权暂时交给⽤户,等待⽤户通过键盘输⼊数值、字符串或表达式等并经回车键将输⼊内容传递到⼯作空间后,收回控制权。
常⽤格式如下:
value = input('message')
value = input('message','s')
命令中的message是将显⽰在屏幕上的字符串,对于第⼀种调⽤格式,可以输⼊字符串、数值等各种各样的数据。但是第⼆种格式的,⽆论输⼊什么内容都当做字符串处理。
keyboard命令将控制权交给键盘,⽤户可以由键盘输⼊各种合法的matlab命令,只有当⽤户输⼊完成,并键⼊return命令后,才收回控制权。
input命令和keyboard命令的不同之处在于:keyboard命令允许输⼊任意多个Matlab命令,⽽input命令只允许⽤户输⼊赋值给变量的数组、字符串或元胞数组等。
2、pause命令matlab数组赋值
pause命令的功能为控制执⾏⽂件的暂停与恢复,其调⽤格式如下:
pause %暂停执⾏⽂件,等待⽤户按任意键继续
pause(n) %在继续执⾏⽂件之前,暂停n秒
3、lasterr和lastwarn命令
lasterr命令可以显⽰matlab系统判断的最新出错原因。
lastwarn命令可以显⽰matlab系统给出的最新警告程序并继续运⾏。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论