2.2.1 变量及其操作
MATLAB不需要任何类型声明和维数说明.对于新变量名,MATLAB会自动创建对应的变量并分配合适的内存.如果变量已经存在,MATLAB会改变它的内容;如果必要,会分配新的存储量.
一、变量与赋值
1.变量命名
变量代表一个或若干个内存单元,为了对变量所对应的存储单元进行访问,需要给变量命名.在MATLAB中,变量名的第一个字符必须是字母,后接字母、数字或下划线等字符序列,最多63个字符.例如,mskkyifa45、my_examp06、myexamp06_均为合法的变量名,而52adlkjal、_myexamp06为不合法的变量名.另外,在MATLAB中,变量名区分字母的大小写.A和a是不同的变量.值得注意的是,MATLAB提供的标准函数名及命令名必须用小写字母.例如,求矩阵A的逆用inv(A),不能写成Inv(A)或INV(A),否则会出错.
2.赋值语句
MATLAB赋值语句有两种形式:
①变量=表达式.
②表达式.
其中表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵.在第一种语句形式下,MATLAB将右边表达式的值赋给左边的变量,而在第二种语句形式下,将表达式的值赋给MATLAB的预定义变量ans.
一般地,运算结果在命令窗口中显示出来.如果在语句的最后加分号,那么MATLAB仅仅执行赋值操作,不再显示运算的结果.如果运算的结果是一个很大的矩阵或根本不需要运算结果,则可以在语句的最后加上分号.
在MATLAB语句后面可以加上注释,用于解释或说明语句的含义,对语句处理结果不产生任何影响.注释以%开头,后面是注释的内容.
例2.1 计算表达式的值,并将结果赋给变量x,然后显示出结果。
解:在MATLAB命令窗口输入命令:
其中,pi和i都是MATLAB的预定义变量,分别代表圆周率π和虚数单位.输出结果为:
3.预定义变量
在MATLAB工作空间中,还驻留几个由系统本身定义的变量.除前面介绍过的ans、pi和i外,还有一些常用的预定义变量,现将它们列于表2-2中.
表2-2 常用的预定义变量及其含义
MATLAB预定义变量有特定的含义,在使用时应尽量避免对这些变量重新赋值.以i或j为例,在MATLAB中,i、j代表虚数单位,如果给i重新赋值,就会覆盖掉原来虚数单位的定义,这时可能会导致一些很隐蔽的错误.例如,由于习惯的原因,程序中通常使用i、j作为循环变量,这时如果有复数运算,就会导致错误.因此,不要用i、j作为循环变量名,除非确认在程序的作用域内不会和复数打交道;或者使用像4+3i这样的复数记法,而不用4+3∗i.还可以在使用i作为循环变量时,换用j表示复数.
二、变量的管理
1.内存变量的显示与删除
who和whos这两个命令用于显示在MATLAB工作空间中驻留的变量名清单.但whos在给出驻留变量名的同时,还给出它们的维数、所占字节数及变量的类型.下面的例子说明了who和whos命令的区别.
clear命令用于删除MATLAB工作空间中的变量.注意,预定义变量不能被删除.
MATLAB工作空间窗口专门用于内存变量的管理.在工作空间窗口中可以显示所在内存变量的属性.当选中某些变量后,再单击工作空间窗口工具栏中的“Delete”按钮,就能删除这些变量.当选中某些变量后,再单击“Open Selection”按钮,即进入变量编辑器(图2-3),通过变量编辑器可以直接观察变量中的具体元素,也可修改变量中的具体元素.
图2-3 变量编辑器
2.内存变量文件
利用MAT文件可以把当前MATLAB工作空间中的一些有用变量长久保留下来.MAT文件是MATLAB保存数据的一种标准的二进制格式文件,扩展名一定是.mat.MAT文件的生成和装入由save和load命令来完成.常用格式为:
save文件名[变量名表][-append][-ascii]
load文件名[变量名表][-ascii]
其中,文件名可以带路径,但不需带扩展名.mat,命令默认对MAT文件进行操作;变量名表中的变量个数不限,只要内存或文件中存在即可,变量名之间以空格分隔,当变量名表省略时,保存或装入全部变量;“-ascii”选项使文件以ASCII格式处理,省略该选项时,文件将以二进制格式处理;save命令中的“-append”选项将变量追加到MAT文件中.
假定变量A和B存在于MATLAB工作空间中,输入以下命令便可借助mydata.mat文件保存A和B:
假如在下次重新进入MATLAB后,需要使用矩阵A和B,可用下述命令把mydata.mat中的内容装入MATLAB工作空间:
执行上述命令后,在当前的MATLAB环境中,A和B就是已知变量了.
注意:mydata是用户自己定义的文件名,MATLAB默认扩展名为.mat.上述save命令执行以后,该mydata.mat文件将存放在当前目录.假如用户有意要让mydata.mat存放在指定的其他目录(比如d:\zwd目录)中,那么save命令改为:
当然,相应load命令中文件名前也要加路径名.
除了操作命令以外,通过双击Workspace窗口内的变量名可以打开“Variables”窗口,同时,工具栏里会添加“VARIABLE”工具项.通过“Insert”和“Delete”按钮可以对变量添加和删除行列操作,通过“New from Selection”按钮可以新建一个变量.