表1-1 MATLAB中常用数学函数
表1-2 MATLAB中常用标点的功能
3
表1-3 MATLAB指令窗的常用控制指令
3.认识MATLAB矩阵与数值计算基础 (1)矩阵的直接排列输入
例:>> A = [1 2 3; 4 5 6; 7 8 9]
注:矩阵用方括号“[ ]”括起;矩阵同一行中的元素之间用空格或逗号分隔;矩阵行与行之间用分号分开;直接输入法中,分号可以用回车代替。 (2)矩阵元素赋值
矩阵元素可以是任何数值表达式。 例:>> x=[-1.3, sqrt(3), (1+2+3)*4/5 ] ? 矩阵元素的单独赋值 例:>> x(5)=abs(x(1))
注:Matlab自动将向量 x 的长度扩展到 5,并将未赋值部分置零。 例:>> x(5)=abs(x(6)) ??
? 大矩阵可以把小矩阵作为其元素 例:>> A = [A; 11 12 13 ] 在原矩阵的下方加一行 (3)矩阵元素的引用 ? 单个元素的引用 例:>> A(2,3)
利用小括弧和元素所在的位置(下标) x(i):向量 x 中的第 i 个元素
A(i, j):矩阵 A 中的第 i 行,第 j 列元素 ? 多个元素的引用:冒号的特殊用法 a:b:c
产生一个由等差序列组成的向量; a 是首项,b 是公差,c 确定最后一项;若 b=1,则 b 可以省略。
例:>> x=1:2:5 >> y=1:2:6 例:>> x=2:1:5 >> y=2:5
4
例:>> x=3:2:1 例:>> x(1:3)
>> A(3,1:3)
A(i:j, m:n) 表示由矩阵 A 的第 i 到第 j 行和第 m 到第 n列交叉线上的元素组成的子矩阵。
可利用冒号提取矩阵 的整行或整列。 例:>> A(1, :)
>> A(:, 1:2) >> A(:, :)
注:冒号的作用
? 提取矩阵的部分元素: 冒号运算符 A(:) A 的所有元素
A(:,:) 二维矩阵A 的所有元素
A(:,k) A 的第 k 列, A(k,:) A 的第 k 行 A(k:m) A 的第 k 到第 m 个元素
A(:,k:m) A 的第 k 到第 m 列组成的子矩阵 (4)常见的矩阵生成函数
可利用 Matlab 自带函数来生成一些特殊的矩阵 例:>> C=magic(3)
表1-4 常见的矩阵生成函数 zeros(m,n) 生成一个 m 行 n 列的零矩阵,m=n 时可简写为 zeros(n) ones(m,n) 生成一个 m 行 n 列的元素全为 1 的矩阵, m=n 时可写为 ones(n) eye(m,n) 生成一个主对角线全为 1 的 m 行 n 列矩阵, m=n 时可简写为 eye(n),即为 n 维单位矩阵 X为矩阵时,diag(X) 为 X 的主对角线向量; X 是向量时,diag(X) 产生以 X 为主对角线的对角矩阵 diag(X) rand(m,n) 产生 0~1 间均匀分布的随机矩阵 m=n 时简写为 rand(n)
(5)矩阵的转置 ’ 共轭转置
.’ 转置,矩阵元素不取共轭 注:点与单引号之间不能有空格! 例:
>> A=[1 2;2i 3i] >> B=A’ >> C=A.’
5
(6)改变矩阵的形状:reshape
reshape(A,m,n)
功能:将原矩阵按列方向进行排列成一个 m×n 的新矩阵
注:重组后得到的新矩阵的元素个数必须与原矩阵元素个数相等! (7)矩阵的加减:对应分量进行运算
注:要求参与加减运算的矩阵具有相同的维数 例:>> A=[1 2 3; 4 5 6]; B=[3 2 1; 6 5 4]
>> C=A+B; D=A-B; (8)矩阵的普通乘法
注:要求参与运算的矩阵满足线性代数中矩阵相乘的原则 例:>> A=[1 2 3; 4 5 6]; B=[2 1; 3 4];
>> C=A*B
(9)矩阵的除法:/、\\ 右除和左除 若 A 可逆方阵,则
B/A <==> A 的逆右乘 B <==> B*inv(A) A\\B <==> A 的逆左乘 B <==> inv(A)*B (10)矩阵的乘方(幂):^ 若 A 是方阵,p 是正整数,则
A^p 表示 A 的 p 次幂,即 p 个 A 相乘。 (11)矩阵的数组运算
? 数组运算:对应元素进行运算 ? 数组运算包括:点乘、点除、点幂
相应的数组运算符为:.* , ./ , .\\ , .^ 注:点与算术运算符之间不能有空格! 例:>> A=[1 2 3; 4 5 6]; B=[3 2 1; 6 5 4];
>> C=A.*B; D=A./B; E=A.\\B; F=A.^B;
6
注:参与运算的对象必须具有相同的形状! (12)求线性方程组的唯一解或特解 方程:AX=b 解法:X=A\\b
??5x1?6x2x1?5x2?6x例 求方程组 ?3 ?x2?5x?3?6x4?x3?5x4?6x5?x4?5x5? 解:在Matlab编辑器中建立M文件: ? A=[5 6 0 0 0 ? 1 5 6 0 0 ? 0 1 5 6 0 ? 0 0 1 5 6 ? 0 0 0 1 5]; ? B=[1 0 0 0 1]'; ? R_A=rank(A) %求秩 ? X=A\\B %求解 ? 运行后结果如下: ? R_A = ? 5 ? X = ? 2.2662 ? -1.7218 ? 1.0571 ? -0.5940 ? 0.3188
?
这就是方程组的解。
4.二维三维的数据可视化实验步骤
7
?1?0?0的解。 ?0?1