首页 MATLAB基础知识📒

01 基础操作与矩阵输入

1.1 基本操作

1.1.1 运算符

运算符主要有:+-*/^

  • +:加法运算
  • -:减法运算
  • *:乘法运算
  • /:除法运算
  • ^:乘方运算,例如:2^3=8

运算优先级:

优先级运算符
1()
2^
3*, /
4+, -

1.1.3 关键字

特殊变量与常量:

关键字名称说明
ansanswer,MATLAB运行窗口中每次的运算结果。
i, j复数计算时,需要用到ij
Inf∞,无穷大。如x = 1/0
eps2.2204e-016,很小的一个数。如x = log(0)
NaN不是一个数。如x = Inf/Inf
piπ

MATLAB中的关键字:

>> iskeyword

ans =

  20×1 cell 数组

    {'break'     }
    {'case'      }
    {'catch'     }
    {'classdef'  }
    {'continue'  }
    {'else'      }
    {'elseif'    }
    {'end'       }
    {'for'       }
    {'function'  }
    {'global'    }
    {'if'        }
    {'otherwise' }
    {'parfor'    }
    {'persistent'}
    {'return'    }
    {'spmd'      }
    {'switch'    }
    {'try'       }
    {'while'     }

1.1.4 数值显示格式控制

类型结果举例(以pi为例)
short固定小数点后4位3.1416
shortE固定小数点后4位,且使用科学计数法表示3.1416e+00
long固定小数格式,双值小数点后15位,单值小数点后7位3.141592653589793
longE固定小数格式,双值小数点后15位,单值小数点后7位,且使用科学计数法表示3.141592653589793e+00
bank小数点后两位3.14
hex二进制双精度数的十六进制表示法400921fb54442d18
rat分数表示355/113

在MATLAB里输入如下所示,即可改变接下来的所有的数值显示

>> format long/short/...

1.1.5 command window和workspace的显示控制

command window的显示控制
  • ;的使用

    • a = 2:按回车会打印ans且变量a存储到workspace中
    • a = 2;:按回车会不会打印ans,但变量a依旧存储到workspace中
  • 使用 ↑ 键与 ↓ 键可以控制历史输入
  • clc:清空命令行窗口
workspace的显示控制
  • clear:清空workspace里的所有信息(该操作不可逆!)
  • clear var:删除workspace中变量var
  • who:打印存储在workspace中的所有变量
  • whos:更为详细地打印出workspace中的所有变量信息

1.2 矩阵相关

1.2.1 矩阵的常规输入

  • 行向量a = [1 2 3] (数字之间用空格隔开,表示数字在同一行)
  • 列向量b = [1;2;3] (数字之间用分号隔开,分号相隔的数字单独成行)

1.2.2 矩阵元素的提取

以$\ A = \begin{bmatrix}1 & 2 & 3\\ 0 & 5 & 6 \\7 & 0 & 9\end{bmatrix}$为例,MATLAB对矩阵元素所在下标存在两种提取方式:

方式一:A(row, col)
  • 提取单个元素(返回数值)

A(2,1):提取矩阵A中第二行第一列的元素,即0

  • 提取多个元素(返回由元素依据相对位置所组成的新矩阵)

这里利用复合形式的row和col,如A([1 3], [1 3]),所提取的下标分别为(1,1)(1,3)(3,1)(3,3)

这里可以理解成两次迭代,首先迭代row[1 3],当row为1时,迭代col[1 3]中的13,从而组成A(1,1)A(1,3);当row为3时,迭代col[1 3]中的13,从而组成A(3,1)A(3,3)

所以最终结果为由1 3 7 9所组成的新矩阵[1,3; 7,9]

方式二:A(index)

这里矩阵的下标从左往右依次纵向数,如A(3,1)的index为3,A(1,2)的index为4。

  • 提取单个元素(返回数值)

A(8):提取矩阵A中纵向开始数,从左往右依次纵向数,第8个元素,即6

  • 提取多个元素(返回由元素依据相对位置所组成的新矩阵)

    • A([1 3 5]):表示将A(1),A(3),A(5)整合为一个行向量,结果为[1 31 17],即:[A(1) A(3) A(5)]
    • A([1 3; 1 3]):同上,即表示:[A(1) A(3);A(1) A(3)]

1.2.3 冒号的使用(Colon Operator)

语法开始值:步长:结束值

快速创建矩阵

B = 1:5等价于B = [1,2,3,4,5]B = 1:2:5等价于B = [1,3,5]

用冒号代表一整行或一整列
  • 用:代表要显示的整行整列

显示矩阵的一整行:A(3, :)表示显示矩阵的第3行,冒号表示全部信息
显示矩阵的一整列:A(:, 2)表示显示矩阵的第2列

  • 删除整行整列

删除一整行或一整列:赋值[]即可;如A(3, : ) = []使得A的第三行被删除

1.2.4特殊矩阵(Some Special Matrix)

函数说明
linspace()生成线性均分的向量
eye(n)n×n的单位矩阵(identity matrix)
zeros(n1, n2)n1×n2的零矩阵(zero matrix)
ones(n1, n2)n1×n2的元素全为1矩阵
diag()对角矩阵(diagonal matrix)
一般用法:diag([12345]),生成对角线为1 2 3 4 5的矩阵
rand()随机矩阵,各元素为0到1的随机数

1.2.5 矩阵连接

增广矩阵C = A|B在MATLAB中采用C = [A B]表示

同理,若要将B矩阵放在A矩阵的下方,则表示为:C = [A;B](也就是把之前的数字换为矩阵)

1.2.6 矩阵运算符(Array Manipulation)

符号说明举例
'矩阵的转置A:$\begin{bmatrix}1 & 2 & 3\\ 0 & 5 & 6 \\7 & 0 & 9\end{bmatrix}$,则A':$\begin{bmatrix}1 & 0 & 7\\ 2 & 5 & 0 \\3 & 6 & 9\end{bmatrix}$
+矩阵加法[6 3] + 2的结果为[8 5]
[6 5] + [4 8]的结果为[10 13]
-矩阵减法[6 3] - 2的结果为[4 1]
[6 5] - [4 8]的结果为[2 -3]
*矩阵相乘[3 5] * [4 8]'的结果为52
.*矩阵的内积[3 5] .* [4 8]的结果为[12 40]
/矩阵的除法[2 5] / [4 8]的结果为3/5
./矩阵元素的左除法[2 5] ./ [4 8]的结果为[1/2 5/8]
.\矩阵元素的右除法[2 5] .\ [4 8]的结果为[2 8/5]
^矩阵的幂[2 5; 2 5]^2等价于[2 5; 2 5] * [2 5; 2 5],结果为[14 25; 14 25]
.^矩阵元素的幂[3 5].^[2 4]等价于[3^2 5^4],结果为[9 625]

1.2.7 矩阵常用函数(Some Matrix Related Functions)

函数说明
max()找到矩阵中每一列元素的最大值
注:如果想找到矩阵的最大元素,需使用两次max,如max(max(A))
min()找到矩阵中每一列元素的最小值
注:如果想找到矩阵的最小元素,需使用两次min,如min(min(A))
sum()求出矩阵每列的元素和
注:如果想求整个矩阵的元素和,需使用两次sum,如sum(sum(A))
mean()求出矩阵每列的平均值
注:如果想求整个矩阵的平均值,需使用两次mean,如mean(mean(A))
sort()对矩阵中每一列进行从小到大排序
sortrows()将每一行绑定在一起,形成一个数值,再由数值大小以行为单位进行从小到大排序
size()输出矩阵的大小(行数,列数)
length()输出矩阵的行数
find(A==n)输出矩阵A中等于数值n的元素下标



文章评论

评论已关闭

目录