假定A为矩阵,矩阵转置的数学表示如下:
如果原矩阵有复数元素,那么会先转置再取各个元素的共轭复数值,即Hermit转置。
MATLAB中格式如下:
B=A'如果不希望取共轭复数,只需要改为点运算即可,如下格式:
B=A.'%加法运算C=A+B %减法运算D=A-B注意两矩阵的维数是否相等以及 是否存在 某个矩阵为标量的情形。
矩阵乘法C=AB的数学形式如下:
MATLAB的格式如下:
C=A*B注意两个矩阵维数的相容性问题。
AX=B,求X
MATLAB的求解格式如下:
X=A\B如果A为非奇异矩阵,则
如果A不是方阵,则可以利用最小二乘法求解
XA=B,求X
MATLAB的求解格式如下:
X=B/A如果A为非奇异方阵,则
如果A不是方阵,则可以利用最小二乘法求解
①左右翻转
B=fliplr(A)②上下翻转
B=flipud(A)③逆时针旋转
D=rot90(A)逆时针旋转
D=rot90(rot(A))乘方运算通常适用于方阵的形式, MATLAB实现 形式如下:
F=A^x一维数组相当于向量,二维数组相当于矩阵,所以实际上矩阵是数组的子集。
数组运算是指数组对应元素之间的运算,也称之为点运算。
矩阵是一个二维数组,所以矩阵的加、减、数乘等运算与数组运算时一致的。矩阵的乘法,乘方和除法有特殊的数学含义,并不是数组对应元素的运算,所以数组乘法,乘方和除法的运算符前特地加了一个点。
| 代码形式 | 数学形式 | |
| 数组乘法 | A.*B | |
| 矩阵乘法 | A*B |
MATLAB代码如下:
A=[1 2;3 4]B=[4 3;2 1] r2_1=A*Br2_2=A.*B运行结果:
A =
1 2
3 4
B =
4 3
2 1
r2_1 =
8 5
20 13
r2_2 =
4 6
6 4
%数组运算%数除以数组,代表k分别被A的元素除k./AA.\k%数组除法A.\B %左除B./A %右除 %矩阵运算%AX=B的解A\B %左除%XA=B的解B/A %右除MATLAB代码如下:
A=[1 2;3 4];B=[4 3;2 1]; r3_1=A\Br3_2=A.\B r4_1=B/Ar4_2=B./A运行结果:
r3_1 =
-6.0000 -5.0000
5.0000 4.0000
r3_2 =
4.0000 1.5000
0.6667 0.2500
r4_1 =
-3.5000 2.5000
-2.5000 1.5000
r4_2 =
4.0000 1.5000
0.6667 0.2500
%数组运算A.^k %A的每个元素进行k次方运算k.^A %以k为底,分别以A的元素为指数求幂值 %矩阵运算A^k %k个矩阵A相乘MATLAB代码如下:
A=[1 2;3 4] r5_1=A.^2r5_2=A^2 r6_1=2.^A运行结果:
A =
1 2
3 4
r5_1 =
1 4
9 16
r5_2 =
7 10
15 22
r6_1 =
2 4
8 16
在MATLAB中,对double变量来讲,非0就表示逻辑1。逻辑运算的本质就是相应元素间的运算。
允许各种的比较关系,如下:
>,>=,<,<=,==,~=,find(),all(),any()
MATLAB代码如下:
A=[1 2 3;4 5 6;7 8 0]find(A>=5) %大于或等于5元素的下标,竖直看[i,j]=find(A>=5);[i,j] %显示行标和列表 all(A>=5) %某列元素全大于或等于5时,相应元素为1,否则为0 any(A>=5) %某列元素含有大于或等于5时,相应元素为1,否则为0运行结果:
A =
1 2 3
4 5 6
7 8 0
ans =
3
5
6
8
ans =
3 1
2 2
3 2
2 3
ans =
1×3 logical 数组
0 0 0
ans =
1×3 logical 数组
1 1 1
MATLAB实现:
s1=simplify(s) %从各种方法中自动选择最简格式%s为原始表达式,s1为化简后的表达式现在列举五个常用的化简函数,关于它们详细的信息与格式可以用help命令得出:
MATLAB代码如下:
syms s;P=(s+3)^2*(s^2+3*s+2)*(s^3+12*s^2+48*s+64); P1=simplify(P) %一系列化简尝试,得出计算机认为的最简形式 P2=factor(P) P3=expand(P)运行结果:
P1 =(s + 3)^2*(s + 4)^3*(s^2 + 3*s + 2)
P2 =[ s + 3, s + 3, s + 2, s + 1, s + 4, s + 4, s + 4]
P3 =s^7 + 21*s^6 + 185*s^5 + 883*s^4 + 2454*s^3 + 3944*s^2 + 3360*s + 1152
%格式1f1=subs(f,x1,x1*) %格式2f1=subs(f,{x1,x2,···,xn},{x1*,x2*,···,xn*}) %f为原表达式,用x*替换x得出新的表达式求f(t)在某点的特殊值:
解:
MATLAB代码如下:
clc;clear;syms a b c d t; %假设这些变量均为符号变量f=cos(a*t+b)+sin(c*t)*sin(d*t); %定义给定函数f(t)f1=subs(f,{a,b,c,d,t},{0.5*pi,pi,0.25*pi,0.125*pi,4})运行结果:
f1 =-1
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删