MATLAB有许多使用方法,但最基本,也是入门时首先要掌握的是MATLAB命令窗口(Command Window)的使用方法。

MATLAB命令窗口是用于输入数据,运行MATLAB函数和脚本,并显示结果的主要工具之一。默认情况下,MATLAB命令窗口位于MATLAB Desktop操作界面的中部。另外命令窗口不仅可以内嵌在MATLAB的Desktop操作界面中,单击命令窗口上的按钮,然后选择还可以浮动命令窗口,结果如图1-12所示。若希望重新将命令窗口嵌入到MATLAB界面中,可以单击按钮,然后选择命令即可。

命令窗口中的“>>”为运算提示符,表示MATLAB正处在准备状态。在提示符后面输入命令并按Enter键后,MATLAB将给出计算结果或者相应的错误/警告信息,然后再次进入准备状态。当MATLAB在命令窗口中显示“K>>”提示符时,表示当前处于调试模式,键入“dbquit”,则可返回正常模式。在MATLAB学生版中,显示的提示符为“EDU>>”。

1. 命令行的使用

在命令提示符后面可以输入数据或者运行函数。

【例1】 数据的输入示例。

>> A = [1 2 3; 4 5 6; 7 8 10]

输入完矩阵3*3的矩阵A之后按回车键,即可运行相应的命令,并完成数据的输入,得到如下结果。

1     2    3

4     5    6

7     8   10

需要指出的是:MATLAB对于大小写是敏感的。比如本例中的矩阵赋给了变量A,并不是变量a。

另外,在MATLAB 2014b中,用户可以在其他地方(网页或者电子文档)中复制命令,并粘贴到命令行运行。这是其他语言都可以实现的,没有什么特别的,但是显然MATLAB做的更好,它人性化的会将多行命令中每行最开头的命令提示符自动去掉(命令提示符后面须有空格以供识别),用户可以直接运行,而不必每行去复制,不必小心的避开命令提示符,这样用户在阅读其他电子材料过程中如果需要验证结果时就方便多了。

【例2】 算术运算示例。求运算式29*(2+23/3)-52的结果。

在命令行输入以下命令,然后按回车键,即可得到相应的结果。

>> 29*(2+23/3)-5^2

因为用户没有指定返回的变量名,所以MATLAB将结果返回给了默认变量名ans。

如果要运行一个系统自带的或者自己编写的函数,该函数必须在当前目录或者在MATLAB的搜索目录上。默认情况下,MATLAB自带的函数都是在搜索目录上,读者可以直接运行。关于搜索目录,后面会有详细介绍。输入函数及其变量并按回车键,MATLAB即可显示相应的结果。

【例3】 MATLAB魔方函数的运行示例。

>> magic(3)

8     1    6

3     5    7

4     9    2

在本例中,magic是MATLAB软件自带的一个函数。magic函数可以生成每行每列之和相等的魔方矩阵,输入的magic(3)为生成的魔方矩阵的行数。

在MATLAB中,每次只可以运行一个命令序列。如果MATLAB正在运行一个函数,那么任何输入的函数会排入队列,等之前的命令结束后才可以运行。有时候一个程序可能运行很长时间,如果读者因为发现了程序的错误或者其他原因想要中途中止程序运行的话,可以使用Ctrl+C快捷键。

在MATLAB中,命令行会对错误的语法格式进行判断,然后给出可能的正确表达方式。例如本例中如果输入

>> magic(3

然后运行,命令行则会给出错误信息,并自动给出正确的表达形式。

Error: Expression or statement is incorrect--possiblyunbalanced (, {, or [.

Did you mean:

>> magic(3)

这时用户直接回车就可以得到正确的结果了。目前语法的自动更正包括括号),],和}的缺失,  赋值符号++,+=, 和-=等,数学表达式2(x+1),函数名大小写错误等。这一功能对用户尤其是初学者来说就非常方便。

2.  数值、变量和表达式

前一小节的例子只是MATLAB最简单的算术运算和函数的运行。在进一步学习之前,有必要了解一些MATLAB的一些基本规定。本小节介绍关于变量的若干规定。

1.数值的表述

MATLAB的数值采用习惯的十进制表示,可以带小数点或者负号。以下的表述均为合法。

4    -29  0.114    84.249   1.349e-4   6.3e13

在采用IEEE浮点算法的计算机上,数值的相对精度是eps(=2.2204e-16),即大约保持有效数字16位。数值范围大致为10e-308~10e308,即1×10-309~1×10309。

2.变量的命名规则

在MATLAB中,变量不用预先声明就可以进行赋值。变量名、函数名是对字母大小写敏感的。如变量FU和变量fu表示的是两个不同的变量。sin是MATLAB定义的正弦函数,而SIN和Sin则不是。当输入SIN的话系统会提示错误,然后给出建议:

>> SIN(3)

Undefined function'SIN' for input arguments of type 'double'.

Did you mean:

>> sin(3)

在MATLAB中,变量名的第1个字符必须是英文字母。变量名最多可包含63个字符。但为了程序可读性的需要以及编写方便,变量名称不宜过长。

MATLAB系统自带的变量名一般都符合这个命名规则,名称不会太长,但是也不会短到难以从字面了解到函数的功能。命名采用英语单词的缩写等,一般所见即所得,从名字即可知道函数的功能。

变量名中不得包含空格、标点,但可以包含下划线,例如myvar_ga。

3.MATLAB默认的预定义变量

在MATLAB中有一些所谓的预定义变量(Predefined variable)。每当MATLAB启动,这些变量就会生成。建议读者在编写程序时,应尽可能不对表1-1中所列的预定义变量名重新赋值,以免产生混淆,致使计算结果错误。

表1-1        MATLAB的预定义变量

预定义变量

含    义

预定义变量

含    义

计算结果的默认变量名

非数,如0/0,¥/¥

浮点相对精度

函数输入的变量数目

预定义变量

含    义

预定义变量

含    义

函数输出的变量数目

虚数单位i=j=

最大正实数1.7977e+308

圆周率π

最小正实数2.2251e-308

MATLAB将复数作为一个整体处理,而不必像其他程序语言那样,把实部和虚部分开处理。虚数单位用预定义变量i或者j表示。

【例4】 复数的输入与相关函数示例。

>> sd=5+6i

5.0000 +6.0000i

>> r=real(sd)               %  给出复数sd的实部

>> im=imag(sd)               %  给出复数sd的虚部

>> a=abs(sd)                %  给出复数sd的模

>> an=angle(sd)          %  以弧度为单位给出复数sd的相位角

本例中,每行命令后面的%表示注释的意思。MATLAB在执行命令的时候,会将本行%之后的语句忽略。本文采用这种注释的方式,目的是让读者更加清楚地明白函数语句的意义,同时节省篇幅。

【例5】 复数矩阵的生成及运算示例。

>> A=[2,4;1,6]-[3,7;3,9]*i

2.0000 -3.0000i   4.0000 - 7.0000i

1.0000 -3.0000i   6.0000 - 9.0000i

>> B=[2+5i,3+2i;6-9i,3-5i]

2.0000 +5.0000i   3.0000 + 2.0000i

6.0000 -9.0000i   3.0000 - 5.0000i

>> C=B-A

0 + 8.0000i -1.0000 + 9.0000i

5.0000 -6.0000i  -3.0000 + 4.0000i

从本例可以看出,复数矩阵的输入可以有多种形式,读者可通过后面章节介绍的矩阵构成方法,根据需要生成相应的矩阵。

【例6】 用MATLAB计算-8的立方根。

>> a=-8;           %  在命令行的结尾加上分号";"

% 则运行的结果只保存在工作空间内,而不再在命令窗口中显示出来

>> r=a^(1/3)         %  对a开立方根

1.0000 +1.7321i

可见MATLAB在直接计算的过程中给出的是-8在第一象限的根,并不是我们所熟知的-2。若想得到-8的全部立方根,运行以下命令即可。

>> m=[0,1,2];                       %  为3个方根而设

>> R=abs(a)^(1/3);              %  模的开3次方

>> theta=(angle(a)+2*pi*m)/3;    % -pi<theta<=pi的3个相位角

>> r=R*exp(i*theta)             %  将得到的结果赋给r