D =
1 4 7 8 5 2 3 6 0 则其乘除的结果见下表。
算 式 A*B ??? Error using ==> * Inner matrix dimensions must agree.(内阶数必须相等) A’*B 6 16 20 9 23 25 12 30 30 A*B’ 10 22 28 49 D\\A ??? Error using ==> \\ Matrix dimensions must agree.(行数必须相等) D\\A’ -0.0370 0 0.5185 1.0000 -0.1481 0 A/D 0.4074 0.0741 0.0000 0.7407 0.4074 0.0000 3、矩阵的乘方和幂次函数
MATLAB中只有运算符*、/、\\、^和指数函数expm、对数函数logm、开方函数sqitm
结 果 是把矩阵作为一个整体来运算的,其他所有的MATLAB函数都是对矩阵中的元素分别进行运算的,称为“元素群运算”,将在后面讨论。
(1)幂次运算时,指数和底数不能同时为矩阵,或者说指数和底数至少一个必须为标
量;
(2)指数或底数为矩阵时,必须是方阵,以保证矩阵相乘的内阶数相等;
(3)注意:sqrtm、expm、logm都是针对矩阵的运算,而sqrt、exp、log是针对矩阵元
素的群运算,不要混淆。
下面来看一些矩阵运算的示例,其中D=[1 4 7;8 5 2;3 6 0],s=[1 2;3 4]即 D =
1 4 7 8 5 2 3 6 0 s =
1 2 3 4 键入语句 D^2 输出结果 54 66 15 54 69 66 51 42 33 2.^D 2 16 128 256 32 4 8 64 1 D^s ??? Error using ==> ^ At least one operand must be scalar. u1=sqrtm(s) 0.5537 + 0.4644i 0.8070 - 0.2124i 1.2104 - 0.3186i 1.7641 + 0.1458i u2=sqrt(s) 1.0000 1.4142 1.7321 2.0000 v1=expm(s) 51.9690 74.7366 112.1048 164.0738 v2=exp(s) 2.7183 7.3891 20.0855 54.5982 logm(D) 1.2447 -0.9170 2.8255 1.6044 2.5760 -1.9132 -0.7539 1.1372 1.6724 log(D) 0 1.3863 1.9459 2.0794 1.6094 0.6931 1.0986 1.7918 -Inf 4、矩阵结构形式的提取与变换
按元素群运算 按矩阵运算 u1*u1=s检验 按元素群运算 u2*u2≠s, u2.*u2=s 按矩阵运算 logm(v1)=s 按元素群运算 log(v1)=s 按矩阵运算 底数和指数不能同时为矩阵 按元素群运算 说明 按矩阵运算 设矩阵A=[8 1 6 0;3 5 7 1;4 9 2 2]即 A =
8 1 6 0 3 5 7 1 4 9 2 2 函数名 fliplr 功能 矩阵左右翻转 语句 B=fliplr(A) 结果 0 6 1 8 1 7 5 3 2 2 9 4 flipud 矩阵上下翻转 B=flipud(A) 4 9 2 2 3 5 7 1 8 1 6 0 reshape 阶数重组(元素总数不变) B=reshape(A,2,6) 8 4 5 6 2 1 3 1 9 7 0 2 tril 取矩阵的左下三角部分 B=tril(A) 8 0 0 0 3 5 0 0 4 9 2 0 triu 取矩阵的右上三角部分 B=triu(A) 8 1 6 0 0 5 7 1 0 0 2 2 : 将元素按列取出排成一排 B=A(:)’ B =8 3 4 1 5 9 6 7 2 0 1 2 (三)元素群运算 1、数组及其赋值
数组通常是指单行或单列的矩阵。MATLAB提供两种为等间隔数组赋值的简易方法。
(1)用两个冒号组成等增量语句,其格式为:t=[初值:增量:终值]或者t=初值:增
量:终值。如: 键入
t=[0:0.02:1]或t=0:0.02:1得
t = 0 0.2000 0.4000 0.6000 0.8000 1.0000 键入
t=[10:-3:-5]或t=10:-3:-5得
t = 10 7 4 1 -2 -5
当增量为1时,该增量可以略去不写,变成t=[初值:终值]或t=初值:终值。如 键入
t=1:6或者t=[1:6]
t = 1 2 3 4 5 6
(2)用linspace函数。调用格式为:linspace(初值,终值,点数)。如:
linspace(1 10 10)得
键入
ans = 1 2 3 4 5 6 7 8 9 10 即将1到10之间等分为10个点,或者说等分为9份。 2、元素群的四则运算和幂次运算
元素群运算也就是矩阵中所有元素按照单个元素进行运算。在运算符*、/、\\、^前加上
一个点符号“.”,就表示做元素群运算。参与元素群运算的两个矩阵必须是同阶的(只有标量除外,它会自动扩展为同阶矩阵参与运算)。 设X=[1,2,3];Y=[4,5,6]
运 算 式 Z=X.*Y Z=X.\\Y Z=X.^Y Z=X.^2 Z=2.^[X Y] 输 出 结 果 Z = 4 10 18 Z = 4.0000 2.5000 2.0000 Z = 1 32 729 Z = 1 4 9 Z = 2 4 8 16 32 64
(四)运算符
MATLAB中的数学运算符
名 称 + - / \\ .* .^ ' . ' 说 明 矩阵加,矩阵减 矩阵右除,矩阵左除 群乘,群求幂 共轭转置,转置 名 称 * ^ ./ .\\ = 说 明 矩阵乘 矩阵求幂 数组右除,数组左除 赋值 MATLAB中的比较和逻辑运算符 名 称 == > >= & ~ any(a) 等于 大于,大于等于 与 非 a中有元素非零则为真 说 明 名 称 ~= < <= | xor(a,b) all(a) 不等于 小于,小于等于 或 a和b异或 a中所有元素都非零则为真 说 明 1.3 M文件及程序调试
行命令模式:键入一行命令后,让系统立即执行该命令。
缺点:程序可读性差,难以存储。 程序文件模式:可存储,尤其适于复杂问题
主程序文件(script file)(主程序):用户为解决特定问题而编制
M文件 函数文件(function file)(子程序):必须由其他M文件调用; 往往具有一定的通用性
由MATLAB语句构成的文本文件,以m作为文件扩展名;
是ASCII码文本文件,可以直接阅读并用任何编辑器来建立。
一、主程序文件 1、格式及要求 (1)程序开头
? 最开始一般是注释行,说明程序用途、对输入数据的要求等。注释行必须以%开始,
运行模式