Matlab变量、分支语句和循环语句
2017-08-08 13:42
316 查看
一、Matlab的变量
1、变量的命名
Matlab的变量名由数字、字母和下划线组成,可是仅仅能由字母开头。大写和小写敏感,最大长度为63个字符。不能使用Matlab的关键字作为变量名,应当避免使用函数名作为变量名。假设变量名採用函数名。则该函数失效。
Matlab提供了isvarname函数来验证用户指定的变量名是否为Matlab接受的合法变量名。该函数返回1或0,分别代表合法或者不合法。
2、变量的类型
Matlab中的变量共分为三类:局部变量、全局变量和永久变量。
局部变量不用多说,和其它的编程语言是相同的含义,局部变量存储在函数的工作空间中,当函数调用结束之后,局部变量随之被删除。
全局变量在整个Matlab的工作空间中都有效。
当在一个工作空间中改变该值的时候,该变量在其余空间内的值也将被改变。全局变量的声明格式例如以下:
永久变量能够用persistent声明。仅仅能在M文件函数中定义和使用;改变了仅仅同意声明它的函数才干使用的规则。当声明它的函数退出时,永久变量继续保存在内存中。
3、特殊变量和关键字
特殊变量是指Matlab提前定义的具有默认意义的变量,例如以下表:
Matlab中有20个关键字。能够使用iskeyword命令来查看。
二、分支结构
Matlab中可用的分支结构有三种,各自是if-else-end结构、switch-case结构和try-catch结构。
1、if-else-end结构
(1)假设可选择的运行命令组仅仅有一组,则调用以下的结构:
(2)假设可选择的运行命令组有两组。则调用以下的结构
(3)假设可选择的运行命令组有n(n>2)组。则调用以下的结构
2、switch-case结构
注意:case后的检測值不仅能够是一个标量值或一个字符串,还能够是一个元胞数组。假设检測是一个元胞数组,则Matlab将value与元胞数组中的每个元素都进行比較。假设有一个元素相等就觉得匹配成功,从而运行该次检測相相应的命令组。
3、try-catch结构
假设在catch下的command2的命令组的运行过程也出错了。那么Matlab将停止运行。
try-catch结构在程序调试场合很实用。
三、循环结构
1、for循环
比如求解1+2+3+….+99+100的和
实际上for后边的i是一个数组,for循环每运行一次,i就取矩阵中的下一个值,比如:
2、while循环
我们还是求上边的那个1——100的和,使用while循环。
while循环和for循环的差别就是,while循环事先不知道要循环多少次,而for循环是依照之前设置好的次数来循环的。
四、其它经常使用控制命令
1、input和keyboard命令
input命令将Matlab的控制权临时交给用户,等待用户通过键盘输入数值、字符串或表达式等并经回车键将输入内容传递到工作空间后,收回控制权。
经常使用格式例如以下:
命令中的message是将显示在屏幕上的字符串,对于第一种调用格式,能够输入字符串、数值等各种各样的数据。
可是另外一种格式的,不管输入什么内容都当做字符串处理。
keyboard命令将控制权交给键盘,用户能够由键盘输入各种合法的matlab命令。仅仅有当用户输入完毕。并键入return命令后,才收回控制权。
input命令和keyboard命令的不同之处在于:keyboard命令同意输入随意多个Matlab命令,而input命令仅仅同意用户输入赋值给变量的数组、字符串或元胞数组等。
2、pause命令
pause命令的功能为控制运行文件的暂停与恢复。其调用格式例如以下:
3、lasterr和lastwarn命令
lasterr命令能够显示matlab系统推断的最新出错原因。
lastwarn命令能够显示matlab系统给出的最新警告程序并继续运行。
1、变量的命名
Matlab的变量名由数字、字母和下划线组成,可是仅仅能由字母开头。大写和小写敏感,最大长度为63个字符。不能使用Matlab的关键字作为变量名,应当避免使用函数名作为变量名。假设变量名採用函数名。则该函数失效。
Matlab提供了isvarname函数来验证用户指定的变量名是否为Matlab接受的合法变量名。该函数返回1或0,分别代表合法或者不合法。
>> isvarname('_var') ans = 0 >> 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/0 | NaN | 表示不定数。即结果不能确定,比如0/0 |
j或i | 虚数 | nargin | 函数的输入參数个数 |
nargout | 函数的输出參数个数 | Realmin | 可用的最小正实数 |
realmax | 可用的最大正实数 | bitmax | 可用的最大正整数(以双精度格式存储) |
varargin | 可变函数的输入參数个数 | varargout | 可变函数的输出參数个数 |
>> 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命令
pause命令的功能为控制运行文件的暂停与恢复。其调用格式例如以下:
pause %暂停运行文件。等待用户按随意键继续 pause(n) %在继续运行文件之前,暂停n秒
3、lasterr和lastwarn命令
lasterr命令能够显示matlab系统推断的最新出错原因。
lastwarn命令能够显示matlab系统给出的最新警告程序并继续运行。
相关文章推荐
- Matlab变量、分支语句和循环语句
- 输出,变量的使用,子查询,逻辑语句,循环,case..when..then..end多分支语句,Exists(判断存在)
- Mysql流程构造语句 变量定义,判断分支,循环
- 探索MATLAB循环语句内部的变量
- oracleday19(复合类型 游标变量 pl/sql 进阶 条件分支语句 loop )
- DELPHI for 语句的循环变量的特别处理
- Matlab之for循环语句
- 黑马程序员———C语言 分支语句和循环语句
- JS基础知识(上)(变量,条件判断语句,循环语句,函数,对象,数组)
- Oracle自学之视图,函数,块,包,包体,变量,常量,循环语句,分页实例
- PL/SQL 编程(一)基础,变量,分支,循环,异常
- JAVA---关于分支结构switch和循环结构for语句的特例
- MATLAB-字符串连接(以循环变量为名创建文本)
- 【编程】用for循环语句打印嵌套变量的值
- php语法基础(一)- 变量、常变量、函数、分支和循环、字符串、数组、类、时间、日期、包含文件、文件及图片读写等
- Matlab之while循环语句
- Java 基础 —— 变量;操作符;条件语句;循环语句
- Java基础(三) Java变量、操作符及判断和循环语句
- 1、C#基础:变量、运算符、分支、循环、枚举、数组、方法
- Oracle条件分支语句和循环语句举例