MATLAB学习笔记(八)
来源:互联网 发布:开农村淘宝怎么赚钱 编辑:程序博客网 时间:2024/05/16 04:55
本章主要学习:
1.进行矩阵代数的基本运算
2.使用MATLAB中的矩阵运算联立方程组
3.使用MATLAB中的特殊矩阵
1.矩阵运算和函数
1)转置
>> A = [1,2,3];>> A'ans = 1 2 3>>
如果是复数,则求转置后变成复数的共轭复数
>> x = [-1:-1:-3];>> y = sqrt(x)y = 0.0000 + 1.0000i 0.0000 + 1.4142i 0.0000 + 1.7321i>> y'ans = 0.0000 - 1.0000i 0.0000 - 1.4142i 0.0000 - 1.7321i>>
2)点积
点积是将两个矢量中的对应元素相乘再求和的过程
>> A = [1,2,3];>> B = [4,5,6];>> Y = A .* BY = 4 10 18>> sum(Y)ans = 32
或者可以直接写成
>> sum(A.*B)ans = 32>>
MATLAB中的函数dot可以实现点积运算
>> dot(A,B)ans = 32>>
不论A和B是行矢量还是列矢量,只要有具有相同的元素个数就可以进行点积运算
3)矩阵乘法
矩阵乘法的结果是一个数组,它由每个元素做点积得到
>> A = [1,2,3;4,5,6];>> B = [10,20,30;40,50,60;70,80,90];>> C = A * BC = 300 360 420 660 810 960>>
注意A的列数必须和B的行数相等。矩阵乘法不满足交换律
4)矩阵的幂
求矩阵的幂就是按照需要的次数,对矩阵本身做乘法运算。
在做幂运算时,矩阵必须是方阵,有相同的行和列。
>> A = randn(3)A = 0.5377 0.8622 -0.4336 1.8339 0.3188 0.3426 -2.2588 -1.3077 3.5784>> A ^ 2ans = 2.8496 1.3054 -1.4893 0.7967 1.2347 0.5401 -11.6957 -7.0438 13.3363>>
求A矩阵的2词幂运算不等于求A的数组2次幂运算
>> AA = 0.5377 0.8622 -0.4336 1.8339 0.3188 0.3426 -2.2588 -1.3077 3.5784>> C = A .^ 2C = 0.2891 0.7433 0.1880 3.3631 0.1016 0.1174 5.1024 1.7100 12.8049>>
它相当于对每一项求平方。
5)矩阵的逆
对于一个函数而言,逆运算是指对函数去反
一个函数乘以它的反函数等于1
MATLAB提供两种实现矩阵逆矩阵的方法,一种是求矩阵A的-1次幂
>> A ^ -1ans = -0.3349 0.5309 -0.0914 1.5466 -0.1991 0.2065 0.3538 0.2623 0.2972>>
另外一种是用内置函数inv
>> inv(A)ans = -0.3349 0.5309 -0.0914 1.5466 -0.1991 0.2065 0.3538 0.2623 0.2972>>
不管采用哪一种方法,矩阵A及逆矩阵的乘积总为单位矩阵
>> inv(A) * Aans = 1.0000 -0.0000 -0.0000 0 1.0000 0.0000 0.0000 -0.0000 1.0000>>
不存在逆矩阵的矩阵叫做奇异矩阵
6)行列式
行列式的手工求法有多种
MATLAB中使用函数det求得
>> A = [1,2;3,4];>> det(A)ans = -2
7)叉积
叉积又称矢量积,它与点积不同,叉积的结果为矢量。结果矢量通常与两个输入矢量所在的平面垂直,这种性质称为正交性。
>> A = [1,2,3];>> B = [4,5,6];>> cross(A,B)ans = -3 6 -3
叉积的记过必须与矢量A和B所在的平面垂直,也就是说它必须垂直于x-y平面,那就只有是corss(A,B)方向的向量满足这一条件。
2.求解线性方程组
1)利用矩阵的逆运算求解方程
方程组:AX = B
则:X = INV(A) * B
>> A = [3,2,-1;-1,3,2;1,-1,-1];>> B = [10;5;-1];>> X = inv(A) * BX = -2.0000 5.0000 -6.0000>>
利用行阶梯形矩阵化简:
>> C = [A,B];>> rref(C)ans = 1 0 0 -2 0 1 0 5 0 0 1 -6>>
3.特殊矩阵
本节将重点介绍可以产生特殊矩阵的MATLAB函数
ones和zeros可以创建全0矩阵和全1矩阵,当输入量为单个变量时,结果为方阵,当输入量为两个时,他们分别表示矩阵的行数和列数。
>> ones(3)ans = 1 1 1 1 1 1 1 1 1
>> zeros(2,3)ans = 0 0 0 0 0 0>>
单位矩阵
>> A = eye(3)A = 1 0 0 0 1 0 0 0 1>>
>> B = eye(3,2)B = 1 0 0 1 0 0>>
- MATLAB学习笔记(八)
- matlab学习笔记(八)---空域滤波增强
- MATLAB学习笔记八(关于图像处理)
- 学习笔记(八)
- Matlab图像处理学习笔记(八):用广义霍夫变换筛选sift特征点
- J2ME学习笔记(八)
- C++学习笔记(八)
- MySQL学习笔记(八)
- android学习笔记(八)
- java学习笔记(八)
- Spring学习笔记(八)
- Struts2学习笔记(八)
- Hibernate学习笔记(八)
- Linux学习笔记(八)
- Linux学习笔记(八)
- Java学习笔记(八)
- Java学习笔记(八)
- JOS学习笔记(八)
- 社説 20150528 ストレス検査 職場環境の改善につなげたい
- Swift开发Sprite Kit游戏实践(三):物理推力与碰撞检测
- Linux常用操作命令
- Android--Recovery模块之恢复出厂设置
- 欢迎使用CSDN-markdown编辑器
- MATLAB学习笔记(八)
- Cordova插件开发3步骤
- 添加Android Support V7
- C++实现http下载 && 24点计算编码风格
- javascript模板引擎 Arttemplate
- 01-复杂度1. 最大子列和问题(20)
- 在一个IP地址上运行多个基于域名的web站 点
- Splendor宝石游戏的策略分析
- QUrl中文路径问题