一、MATLAB的命令窗口
1、窗口概览
2、一些基本使用
(1)在输入一条命令(或者说表达式)并按下回车后,窗口往往会输出操作结果(这不是必然的,有些命令,比如clc,它并不会输出任何结果),如果不希望在屏幕上输出结果,可以在语句的最后加上分号。
(2)如果语句很长,需要换行输入,可以用续行符“...”(三个点)续行,其前面留一个空格。
(3)如果屏幕上的内容太多,可以使用clc命令清屏,这并不会有什么其它影响,也就是不会清除历史命令窗口(记录所有运行过的命令)中的数据,已定义的变量仍然可以使用。
二、MATLAB变量的定义
1、MATLAB变量的命名规则
(1)变量名称以字母开头。
(2)除第一个字符外,后面可以跟字母、数字和下划线。
(3)变量名中的字母区分大小写。
2、MATLAB语句的通常形式
(1)表达式是用运算符将有关运算量连接起来的式子,其结果被赋给赋值号“=”左边的变量。
(2)通式:<变量> = <表达式>。
(3)举例:
3、变量的查看
(1)who命令:显示工作空间中的所有变量。
(2)whos命令:显示变量的详细属性,其中Name是变量名,Value是变量的值,Size是变量的大小,Bytes是变量所占字节数量,Class是变量类型(MATLAB中的数默认是双精度实数double型,表示方法与C语言相同)。
4、清除已定义的变量
(1)clear命令(无操作数):清除工作空间中的所有变量。
(2)clear命令(有操作数):清除工作空间中指定的变量。
5、系统预定义变量
(1)系统预定义的变量:
变量名 | 值 |
pi | 圆周率 |
inf,Inf | 无穷大 |
nan,Nan | Not-a-Number,一个不定值 |
eps | 浮点运算相对精度(或者说相对误差) |
i,j | 虚部单位 |
(2)注意事项:
①应尽量避免给系统预定义变量重新赋值。
②ans是一个特殊变量,可看作一个暂时存放计算结果的容器,当没有使用其它变量来存放计算结果的时候,MATLAB就会把结果存放到ans这个变量中。
③保留的关键字不允许作为变量名。
④MATLAB允许重新指定内置函数名作为变量名,如sin,但这样做显然很危险,用户可以使用命令which检查一个变量是否为MATLAB的内置函数。
6、变量的存储与读取
(1)存储当前工作空间中的变量:
①save:将所有变量保存到文件matlab.mat。
②save mydata:将所有变量保存到文件mydata.mat。
③save mydata.mat:将所有变量保存到文件 mydata.mat。
(2)存储指定的变量:
save <文件名> <变量名列表(各变量之间用空格分隔)>
(3)将数据文件中的变量载入当前工作空间:
①load mydata:读取数据文件mydata.mat中的所有变量。
②load mydata <变量名>:从数据文件mydata.mat中提取指定变量。
三、MATLAB数值运算与矩阵
1、基本运算符与表达式
(1)数学运算符:
运算符 | 运算操作 |
+ | 加法 |
- | 减法 |
* | 乘法 |
/和\ | 除法(左除和右除) |
^ | 幂运算 |
注:用户可以在加号和减号的前后加入空格,以使表达式的可读性更强,但不能在乘号和除号的前后加入空格。
(2)命令分隔符:一行可以写多个语句,语句间用逗号或分号隔开(分号前的一个表达式不会输出结果)。
2、矩阵
(1)矩阵的定义(直接输入法):
①矩阵用方括号“[ ]”括起。
②矩阵同一行中的元素之间用空格或逗号分隔(复数作为矩阵元素输入时,加号两边不能有空格,比如“3+4i”)。
③矩阵行与行之间用分号分开。
④直接输入法中,分号可以用回车代替。
(2)矩阵元素可以是任何数值表达式。
(3)大矩阵可以把小矩阵作为其元素。
(4)矩阵元素的引用:
①单个元素的引用:
[1]x(i):向量x中的第i个元素。
[2]A( i,j ):矩阵A中的第i行、第j列元素。
②多个元素的引用:
[1]x(i:j):向量x中的第i 到第j个元素。
[2]x(i:end):向量x中的第i个到最后一个元素。
[3]A(i:j,m:n):由第i至j行和第m至n列组成的子矩阵。
[4]A(i:end,m:n):第i行到最后一行、第m列至第n列(A的子矩阵)。
[5]A(i:j,m:end):第m列到最后一列、第i行至第j行(A的子矩阵)。
[6]可利用冒号提取矩阵的整行或整列。
A(:,k) | 矩阵的第 k 列 |
A(i,:) | 矩阵的第 i 行 |
A(i:j,:) | 矩阵的第 i 行到第 j 行 |
A(:,m:n) | 矩阵的第 m 列到第 n 列 |
A(:,:) | 整个矩阵 |
x(:) | 取向量的所有元素,并按列向量方式输出 |
A(:) | 将矩阵的所有元素按列排成一个列向量 |
[7](其中
,
):由A的第
行和第
列组成的子矩阵。
(5)矩阵元素的赋值:
①对于矩阵元素的单独赋值,如果给不存在的元素赋值,MATLAB会自动扩展矩阵,并将未赋值的部分置零。
②对于矩阵的多个元素赋值,如果给引用的元素赋值为空矩阵,执行的操作是将它们删除(如果不是空矩阵,则起到一个修改矩阵的作用)。
(6)产生等差与等比数列:
①在MATLAB中,冒号有特殊用法,对于“a : b : c”,它等价于一个由等差序列组成的向量,a是首项,b是公差,c确定最后一项(若b = 1,则b和其前面的冒号可以省略)。
②linspace命令:参数中给出等差数列的初始元素、最终元素和步数,即可生成由等差序列组成的向量。
③logspace命令:参数中给出等比数列的初始元素、最终元素和步数(初始元素、最终元素以10的指数形式表示,也就是它们作为10的指数,经过指数运算后得到的才是真正的元素值),即可生成由等比序列组成的向量。
(7)矩阵的运算:
①矩阵与矩阵之间的运算:
[1]矩阵与矩阵之间的加减法:矩阵的对应分量进行运算。(参与加减运算的矩阵需要具有相同的维数)
[2]矩阵的普通乘法:运算规则与线性代数中的矩阵相乘一致。(参与运算的矩阵须满足线性代数中矩阵相乘的原则)
[3]矩阵的除法:
#1 矩阵的除法也分为左除(/)和右除(\)。
#2 若A可逆方阵,则B/A可视为A的逆右乘B(即B*inv(A)),A\B可视为A的逆左乘B(即inv(A)*B)。
#3 若X=B/A,则有X*A=B;若X=A\B,则有A*X=B。
#4 当A和B行数相等时可进行左除,当A和B列数相等时可进行右除。
[4]矩阵的乘方:A^p表示A的p次幂,即p个A相乘。(A需要是一个n阶方阵)
[5]矩阵的数组运算:数组运算即矩阵的对应元素进行运算,其中包括点乘、点除(左除和右除)、点幂三种运算,相应的四个数组运算符为“.*”、“./”、“.\”、“.^”(点与算术运算符之间不能有空格)。(参与运算的对象必须具有相同的形状)
②矩阵与标量之间的运算:
[1]矩阵与标量之间的加减法:矩阵的每个分量都与标量进行加/减运算。
[2]矩阵的数乘(矩阵与标量之间的乘法):矩阵的每个分量都与标量进行乘法运算。
[3]矩阵与标量之间的除法:矩阵的每个分量都与标量进行除法运算。
③矩阵自身的改变:
[1]矩阵转置:矩阵转置分为普通转置(简称转置)与共轭转置,其中普通转置的运算符为“’”,共轭转置的运算符为“.’”(点与单引号之间不能有空格);与普通转置不同的是,进行共轭转置时矩阵元素会取共轭,而普通转置仅进行行列位置的互换。
[2]矩阵的旋转:
#1 fliplr(A):对A进行左右翻转。
#2 flipud(A):对A进行上下翻转。
#3 rot90(A,k):对A进行逆时针旋转k×90度,如省略参数k则进行逆时针旋转90度的操作,如参数k为负数则代表进行的是顺时针旋转。
[3]矩阵形状的改变:reshape(A,m,n),将矩阵A的元素按列方向进行重新排列成一个m×n的新矩阵,新矩阵的元素个数必须与原矩阵元素个数相等。
四、MATLAB的输出格式
MATLAB中数的输出格式可以通过format命令指定,下面列出其中几种格式的指定方法。(format只指定变量的输出格式,但不会改变变量的值)
格式 | 解释 | 例 |
format | 短格式(缺省显示格式),同short | 3.1416 |
format short | 短格式(缺省显示格式),只显示5位 | 3.1416 |
format long | 长格式,双精度数15位,单精度数7位 | 3.14159265358979 |
format short e | 短格式e方式(科学计数格式) | 3.1416e+000 |
format long e | 长格式e方式(科学计数格式) | 3.141592653589793e+000 |
format short g | 短格式g方式 | 3.1416 |
format long g | 长格式g方式 | 3.14159265358979 |
format rat | 分数形式 | 355/113 |