Matlab变量、分支语句和循环语句

一、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 可变函数的输出參数个数

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命令

pause命令的功能为控制运行文件的暂停与恢复。其调用格式例如以下:

pause %暂停运行文件。等待用户按随意键继续
pause(n) %在继续运行文件之前,暂停n秒

3、lasterr和lastwarn命令

lasterr命令能够显示matlab系统推断的最新出错原因。

lastwarn命令能够显示matlab系统给出的最新警告程序并继续运行。

时间: 2024-10-09 04:31:20

Matlab变量、分支语句和循环语句的相关文章

Shell编程之case多分支语句、循环语句(for、while等)、Shell函数、Shell数组

case多分支语句 case语句的结构: 针对变量的不同取值,分别执行不同的命令列 case 变量值 in 模式1) 命令序列1 ;; 模式2) 命令序列2 ;; ..... *) 默认命令序列 esac 示例: 字符类型识别: 提示用户输入一个字符: 判断出该字符是字母.数字或者其他字符. 脚本如下: [[email protected] opt]# vim test01.sh #!/bin/bash read -p "请输入一个字符:" key case $key in [a-z]

JAVA 最初的接触 2019年 1 月 6 日 任何程序本质就是:变量、选择语句、循环语句

程序就是现实逻辑的表达 程序的本质:变量 .if 语句 .循环语句 第一个非程序 一个公司的逻辑 考勤办法: 1.上班时间是9:00,打卡时间晚于9点则是迟到 2.打卡时间迟到10分钟,则扣打卡人工资10元 3.打卡时间迟到10分钟到60分钟,则扣打卡人工资100元 4.打开时间迟到1小时以上.罚做俯卧撑100个,直到坐满100个才能坐上工位上班. 逻辑: (学会后一定回头写一个完整的代码补充) kaoqin(打卡人,打卡时间) { 上班时间 = 9: if (0 < 打卡时间 - 上班时间 <

[Python学习] 专题二.条件语句和循环语句的基础知识

        前面讲述了"专题一.函数的基础知识",而这篇文章讲述的Python的条件语句和循环语句的基础知识.主要内容包括: 1.条件语句:包括单分支.双分支和多分支语句,if-elif-else 2.循环语句:while的使用及简单网络刷博器爬虫 3.循环语句:for的使用及遍历列表.元组.文件和字符串 前言: 语句块         在讲诉条件语句.循环语句和其他语句之前,先来补充语句块知识.(前面讲函数时已经用到过) 语句块并非一种语句,它是在条件为真(条件语句)时执行或执行

javascript语句——条件语句、循环语句和跳转语句

× 目录 [1]条件语句 [2]循环语句 [3]跳转语句 前面的话 默认情况下,javascript解释器依照语句的编写顺序依次执行.而javascript中的很多语句可以改变语句的默认执行顺序.本文介绍可以改变语句默认执行顺序的条件语句.循环语句和跳转语句 条件语句 脚本的威力体现在它们可以根据人们给出的各种条件做出决策,javascript使用条件语句来做判断 条件语句(conditianal statement)通过判断表达式的值来决定执行还是跳过某些语句,包括if语句和switch语句

编译器--支持条件语句和循环语句的计算器(三)

在上篇文章中实现了支持变量和赋值语句的计算器,这次加入了条件语句和循环语句. 语法简介 下面是条件语句的一个例子,能够对条件语句的格式有一个感性认识: if  var1 > 5 then var2 := 10; end 条件语句以if开始,后跟一个条件表达式,如果其为真则执行then后面的语句块,条件语句以end结束. 条件语句也可以支持else分支语句,比如 if var1 > 5 then var2 := 10; else var2 := -10; end 接下来是一个循环语句的例子: v

python基础(4):条件语句与循环语句

今天我们看看条件语句与循环语句. 预习: 1.使用while循环输出1 2 3 4 5 6 8 9 10 2.求1-100的所有数的和 3.输出 1-100 内的所有奇数 4.输出 1-100 内的所有偶数 5.求1-2+3-4+5 ... 99的所有数的和 6.用户登陆(三次机会重试) 一.条件语句 当我们写的程序需要分支时,也可以说当一个事件发生时在特定情况下会产生不同处理情况时就会用到我们的条件语句. if...else语句: 单分支: 1 ''' 2 if 条件 : 3 满足条件后执行的

兄弟连学Python(06)------- 条件语句和循环语句

Python的条件语句和循环语句的基础知识: 1.条件语句:包括单分支.双分支和多分支语句,if-elif-else 2.循环语句:while的使用及简单网络刷博器爬虫 3.循环语句:for的使用及遍历列表.元组.文件和字符串 在讲诉条件语句.循环语句和其他语句之前,先来补充语句块知识.(前面讲函数时已经用到过) 语句块并非一种语句,它是在条件为真(条件语句)时执行或执行多次(循环语句)的一组语句.在代码前放置空格或tab字符来缩进语句即可创建语句块.很多语言特殊单词或字符(如begin或{)来

【RPA基础教学】UiBot逻辑语句与循环语句

新手教学丨UiBot逻辑语句与循环语句 逻辑语句[条件分支语句]UIBot中使用的条件判断语句就是If语句,主要用于对某一个或者多个条件进行判断,从而执行不同流程.方式一:如果...则...否则If 条件条件成立执行Else条件不成立执行End If 方式二:如果 条件一 否则如果 条件二 否则If 条件一条件一成立执行ElseIf 条件二条件二成立执行Else上述条件均不成立End If [选择分支语句]根据一定的条件,选择多个分支中的一个,与VBScript中的Select Case语句类似

Shell编程之case语句与循环语句

case语句分支 1.case语句的结构 case 变量值 in模式 1)命令序列 1;;模式 2)命令序列 2;;......*)默认命令序列esac case分支语句的结构图使用case分支语句的注意点:1.case行尾必须为单词"in",每一个模式必须以右括号")"结束.2.双分号";;"表示命令序列的结束.3.模式字符串中,可以用方括号表示一个连续的范围,如"[0-9]";还可以用竖杠符号"|"表示

if条件语句 for循环语句

(一)if语句 If语句是一个条件分支语句. C#中,空语句是合法的,他不做任何操作. 好的编码风格要求语句块中要有缩进. I f语句中if后面可以没有else,可以有多个else if,但只能最多有一个else! 例题: /*if语句的简单应用 收入和逃税问题 double money; Console.Write("月收入"); money = Convert.ToDouble(Console.ReadLine()); if (money > 3500) { Console.