MATLAB矩阵运算
1. 矩阵的加减乘除和(共轭)转置
(1) 矩阵的加法和减法
如果矩阵A和B有相同的维度(行数和列数都相等),则可以定义它们的和A+B以及它们的差A-B,得到一个与A和B同维度的矩阵C,其中Cij=Aij+Bij或Aij-Bij.
另外Matlab还支持任意一个矩阵A与一个标量s相加,结果为矩阵的每一个元素加减标量,得到一个与A同维度的新的矩阵,即A+s的各个元素为Aij+s.
(2) 矩阵的乘法
如果矩阵A的列数等于矩阵B的行数,则可以将A和B相乘,命令为A*B,得到一个新的矩阵C,C的行数等于A的行数,列数等于B的列数. 由于矩阵的乘法不满足交换律,所以一般A*B不等于B*A.
(3) 矩阵的张量积(tensor product)
矩阵A和B的张量积A⊗B可以方便地用kron函数计算,即使用命令kron(A,B), 例如
(4) 矩阵的除法
在MatLab中,有两个矩阵除法符号,左除\和右除/. 如果A是一个非奇异方阵(nonsingular square, 即满秩方阵),B的行数与A的行数相等,那么A\B=A-1B. 如果C的列数与A的列数相等,那么C/A=CA-1.
从另一个角度来看,X=A\B是矩阵方程AX=B的解,X=C/A是矩阵方程XA=C的解. 如果b是一个行数与A的行数相等的列向量,则向量x=A\b是线性方程组 Ax=b的解. 且在矩阵方程AX=B中,A可以是一个m×n的矩阵,如果m=n则有唯一解;如果m<n则有多个解,Matlab会返回一个基础解;如果m>n则会返回一个最小方阵解.
(5) 矩阵的转置和共轭转置
在Matlab中,矩阵的共轭转置用撇号’表示,如果不需要对元素进行共轭运算,仅仅只对矩阵进行转置,则在撇号之前输入一个点号,即 .’ . 对于实数矩阵A,A’和A.’是相同的.
2. 矩阵元素操作运算
矩阵的运算既可以是如前所述的正常的整体运算,也可以是矩阵对应的元素依次进行标量运算,也叫数组运算,即把矩阵看做是二维数组. 对矩阵进行数组运算后得到的结果是一个与参与运算的矩阵维度相同的新矩阵,.这种元素间的算术运算的前提是参与运算的两个矩阵的维数要相同.
对于加法和减法,元素操作运算和矩阵运算没有差别,而对于乘、除和幂运算符,相应的数组运算符是在一般的算术运算符前面加上一个点号,如
+ - .* ./ .\ .^
其中,A./B 是指A中的元素除以B中相应的元素,即A./B 的第i行第j列的元素(A./B)ij=Aij/Bij,而(A.\B)ij=Bij\Aij. 这些元素运算符的使用例子如下所示:
在Matlab中预定义的数学标准函数,如sin(x), abs(x)等都是基于对矩阵元素的运算. 如果函数f(x)是这样的一个函数,A是一个m×n的矩阵,其元素是aij ,那么 f(A)也是一个m×n的矩阵,其第i行第j列的元素为f(aij),例如
其中pi是Matlab的预定义变量,值为π,i也是预定义变量,表示复数的单位.
3. 常用的矩阵函数
矩阵函数是指参数为矩阵的函数,函数结果可能是一个标量值也可能是一个函数或者向量. Matlab中常用的矩阵函数包括:
(1) rank(A): 求矩阵A的秩,即A中线性无关的行数或者线性无关的列数.
(2) det(A): 求矩阵A的行列式值.
(3) inv(A): 如果A是一个非奇异(nonsingular)矩阵,则inv(A)返回A的逆矩阵. 另外还可以用左除A\eye(n)或右除eye(n)/A来计算A的逆,且在Matlab中用左除或右除来计算逆所花的计算时间比用inv函数要少,也比inv具有更好的容错性(error-detection properties).
(4) dot(x,y): 求同维度的向量x和y的内积/点积. 若A和B是两个具有相同维度的矩阵,则dot(A,B)是计算A和B对应列的内积,结果是一个行向量,这个行向量的列数等于A或B的列数. 例如
(5) cross(x,y): 计算同维度的向量x和y的叉积,结果是一个向量,其方向由右手定则决定,长度等于|x|*|y|sin<x,y>. 若A和B是两个具有相同维度的矩阵,则cross(A,B)是计算A和B对应列的叉积,结果是一个维度与A和B相等的矩阵.
(6) kron(A,B): 得到矩阵A和B的张量积.
(7) isequal(A,B): 如果矩阵A和B是相同的,即具有相同的维数和相同的内容,则返回1.
(8) isreal(A): 判断A是否是一个实矩阵,如果是则返回1,否则返回0.
(9) trace(A): 计算方阵A的迹,即对角线元素之和.
(10) eig(A): 计算方阵A的特征值,结果是一个列向量,向量中元素的个数等于特征值的个数,即A的维度(A的行数或列数).
(11) [U,D]=eig(A): 计算方阵A的特征值和特征向量,得到两个方阵U和D,其中D的对角线元素为A的特征值,U的列向量为A的特征向量(可能是未normalize的结果),例如
MATLAB矩阵运算的更多相关文章
- Matlab 矩阵运算
1.Syms 和sym的区别: syms是定义多个符号是符号变量的意思 sym只能定义一个符号变量,但可以具体到这个符号变量的内容 例:syms f z; %定义下x和y f=sym('a+b+c') ...
- Matlab——矩阵运算 矩阵基本变换操作
矩阵运算 + 加 - 减 .* 乘 ./ 左除 .\ 右除 .^ 次方 .' 转置 除了加减符号,其余的运算符必须加“.” >> a = : a = >> a- %减法 ans ...
- matlab 矩阵运算技巧
1.a=a(:) 作用:将矩阵转化成列向量 a=[a11 a12 a13 a=[a11 a21 a12 a22 a13 a23]^T a21 a22 a23] ...
- [matlab] 3.矩阵
matlab矩阵运算很强大 ,几乎所有涉及矩阵运算的命令都有. 事实上,matlab里面所有变量都是以矩阵的形式保存下来的. %% >> x=[1:2.1:10] x = 1.0000 ...
- matlab基本操作总结
1.clear;//清除工作平台变量2.close all;//关闭打开的图形窗口3.I = imread('C:\Users\dell\Desktop\rice.jpg');//读取图像,存储在I数 ...
- matlab中矩阵式子的不成熟理解
matlab中的矩阵式的系统方式理解:一个矩阵式代表一个系统的作用,列代表输入,行代表输出,有多少列就有多少输入,有多少行就有多少输出,矩阵式的相加代表的是线性系统的叠加作用,矩阵式的相乘代表的是两个 ...
- MATLAB基础指令操作
由于课程实验需要学习使用了MATLAB,在此记录一下MATLAB的基本操作和命令,供参考与查阅. 学习过程中的资料也链接如下: MATLAB矩阵运算:https://wenku.baidu.com/v ...
- MATLAB入门学习(二)
关于矩阵 ~o( =∩ω∩= )m matlab矩阵运算很强大 ,几乎所有涉及矩阵运算的命令都有. 事实上,matlab里面所有变量都是以矩阵的形式保存下来的. 一个数字是1x1矩阵 我们来看看矩阵的 ...
- [转] Matlab与C++混合编程,添加OpenCV库
原文地址 峰回璐转 最近在做运动医学软件优化工作,此款软件框架及算法语言全由matlab实现,虽然matlab矩阵运算.数值计算能力强大,但速度让人难以忍 受.软件立刻移植到C++上又不太实际,故采用 ...
随机推荐
- 为什么用Flow
Flow 是 facebook 出品的 JavaScript 静态类型检查工具.Vue.js 的源码利用了 Flow 做了静态类型检查,所以了解 Flow 有助于我们阅读源码. flow的工作方式? ...
- Mybatis Annotation使用小结
Mybatis Annotation使用小结 之前一直有看过mybatis的注解使用方式,但没有去看过它的原理.今天看springboot-mybatis-annotation使用的时候,debug了 ...
- String与StringBuffer
转载于:http://www.cnblogs.com/springcsc/archive/2009/12/03/1616330.htm l火之光 StringBuffer类和String一样,也用来 ...
- Linux 安装 JDK 8
1. step1: 下载最新的 Java Archive # wget --no-cookies --no-check-certificate --header "Cookie: gpw_ ...
- Django与ajax、分页器
ajax简单数据响应 ajax请求,后台只需要返回信息,所以不会出现render.redirect 模板层: $('.btn').click(function() { $.ajax({ url: '/ ...
- django——面试题(已工作,暂停更新)
谈谈你对HTTP协议的认识. 什么是协议? 协议,是指通信的双方,在通信流程或内容格式上,共同遵守的标准. 什么是http协议? http协议,是互联网中最常见的网络通信标准. http协议的特点 ① ...
- [POJ1220]NUMBER BASE CONVERSION (高精,进制转换)
题意 任意进制之间的高进的转换 思路 相模倒排,高精处理 代码 我太弱了,下面附一个讨论里发的maigo思路的代码 ],A[]; ],d[]; main(){ for(scanf("%d&q ...
- JavaScript(七)
类型转换 1.直接转换 parseInt() 与 parseFloat() alert('12'+7); //弹出127 alert( parseInt('12') + 7 ); //弹出19 ale ...
- ECMA Script 6_async 函数
async 函数 const promise = new Promise((resolve, reject)=>{ setTimeout(function(){ console.log(&quo ...
- react_app 项目开发 (2)_axios_pubsub-js
生产环境打包并运行 yarn run build 会src代码进行打包处理,在内存中生成打包文件 将打包文件保存至内存 yarn global add serve serve -s build 将 b ...