当前位置: 首页 > news >正文

(MATLAB)第五章-矩阵运算

目录

5.1 矩阵

5.1.1 矩阵定义

5.1.2 矩阵的生成

1. 直接按行输入

2. 利用M文件创建(一般创建大型矩阵中采用)

3. 利用文本文件创建(相同路径下)

5.1.3 创建特殊矩阵

5.1.4 矩阵元素的运算

1. 矩阵元素的修改

2. 矩阵的变维

3. 矩阵的变向

4. 矩阵的抽取

5.2 矩阵数学运算

5.2.1 矩阵的加法运算

5.2.2 矩阵的乘法运算

1. 数乘运算(每个元素都乘以相同的数)

2. 乘运算

3. 点乘运算

5.2.3 矩阵的除法运算

5.3矩阵运算

5.3.1 幂函数

5.3.2 矩阵的逆 Y = inv(X)

未完待续... 

参考资料:


5.1 矩阵

5.1.1 矩阵定义

        Am×n         aij         []         ,         ;

5.1.2 矩阵的生成

1. 直接按行输入

        示例1:

a=[15 15 15;15 15 15;15 15 15]

        示例2:

A=[[1,1+i,2];[2,3+2i,1]] %使用方括号标记每一行的元素

2. 利用M文件创建(一般创建大型矩阵中采用)

        注意:M文件中变量名不可以与文件名相同,否则会造成混乱!

3. 利用文本文件创建(相同路径下)

        调取txt文件:

 load goods.txtgoods

5.1.3 创建特殊矩阵

函数名

说明

eye(n)

创建n*n单位矩阵

eye(m,n)

创建m*n的单位矩阵

eye(size(A))

创建与A维数相同的单位矩阵

ones(n)

创建n*n1矩阵

ones(m,n)

创建m*n1矩阵

ones(size(A))

创建与A维数相同的全1矩阵

zeros(m,n)

创建m*n的全0矩阵

zeros(size(A))

创建与A维数相同的全0矩阵

rand(n)

[0,1]区间创建一个n*n均匀分布的随机矩阵

rand(m,n)

[0,1]区间创建一个m*n均匀分布的随机矩阵

randn(n)

创建一个n*n的均值为0方差为1的标准正态分布随机矩阵

randn(n)

创建一个m*n的均值为0方差为1的标准正态分布随机矩阵

diag(v)

创建以向量v中的元素为对角的对角阵

zeros(m,n)

创建m*n的全0矩阵

magic(n)

创建n阶魔方矩阵

vander(v)

创建以向量v为基础的范德蒙矩阵

hilb(n)

创建n*nHibert(希尔伯特)矩阵

compan(P)

创建系数向量是P的多项式的伴随矩阵

pascal(n)

创建一个n阶帕斯卡矩阵

sparse(A)

将矩阵A转化为稀疏矩阵形式,即由A的非零元素和下标构成稀疏矩阵S,若A本身就是稀疏矩阵,则返回A本身

5.1.4 矩阵元素的运算

1. 矩阵元素的修改

命令

说明

D=[A;B C]

A为原矩阵,BC中包含要扩充的元素,D为扩充后的矩阵

A(m,:)=[]

删除A的第m

A(:,n)=[]

删除A的第n

A(m,n)=a; A(m,:)=[a b …]; A(:,n)=[a b…]

创建n*n1矩阵

2. 矩阵的变维

        B=reshape(A,m,n) 将已知矩阵A按行排列变为m行n列的矩阵,得到B

        B=zeros(m,n);B(:)=A(:) 将已知矩阵A按列排列变维m行n列的矩阵(首先需要先建立B的零矩阵)

3. 矩阵的变向

命令

说明

rot90(A)

A逆时针方向旋转90°

rot90(A,k)

A逆时针方向旋转k*90°,k为正/负整数

fliplr(X)

X左右翻转

flipud(X)

X上下翻转

flipdim(X,dim)

dim=1对行翻转(上下),dim=2对列翻转(左右)

4. 矩阵的抽取

命令

说明

v=diag(X,k)

v为抽取矩阵X的第k条对角线上的元素向量。k=0时为抽取主对角线,k为正整数是抽取上方第k条对角线上的元素,k为负整数是抽取下方第k条对角线上的元素

v=diag(X)

抽取主对角线

tril(X)

提取矩阵X的主下三角部分

tril(X,k)

提取矩阵X的第k条对角线下面的部分(包括第k条对角线)

triu(X)

提取矩阵X的主上三角部分

triu(X,k)

提取矩阵X的第k条对角线上面的部分(包括第k条对角线)

5.2 矩阵数学运算

5.2.1 矩阵的加法运算

        要求:维度大小相同

5.2.2 矩阵的乘法运算

1. 数乘运算(每个元素都乘以相同的数)

2. 乘运算

        C=A*B,须满足:

        (1)A的列数=B的行数

        (2)C的行数=A的行数,C的列数=B的列数

        (3)C的m行n列元素值=A的m行元素与B的n列元素对应值积的和

3. 点乘运算

        点乘运算是指将两矩阵中相同位置的元素进行相乘运算,将积保存在原位置组成新矩阵

5.2.3 矩阵的除法运算

        左除运算A\B计算左除A\B时,A的行数要与B的行数一致

                A\B↔A*X=B,若A非奇异(逆矩阵inv(A)存在)则X=inv(A)*B= A\B

        右除运算A/B计算右除A/B时,A的列数要与B的列数一致

                A/B↔X * A =B,若A非奇异(逆矩阵inv(A)存在)则X= B* inv(A) = A/B

5.3矩阵运算

         MATLAB常用矩阵函数:

函数

说明

cond

矩阵条件数值

condest

1-范数矩阵条件数值

rcond

矩阵逆条件数值

det

矩阵的行列式

eig

矩阵的特征值

inv

矩阵的逆

norm

矩阵的范数值

normest

1-范数矩阵条件数值

rank

矩阵的秩

orth

矩阵的正交化运算

rcond

矩阵的逆条件数值

trace

矩阵的迹

triu

上三角变换

tril

下三角变换

diag

创建对角矩阵或获得矩阵对角元素

expm

矩阵的指数运算

logm

矩阵的对数运算

sqrtm

矩阵的开方运算

cdf2rdf

复数对角矩阵转换成实数对角矩阵

rref

转换成逐行递减的阶梯矩阵(Gauss-Jordan 消去法)

rsf2csf

实数对角矩阵转换成复数对角矩阵

rot90

矩阵逆时针旋转90°

fliplr

左右翻转矩阵

flipud

上下翻转

reshape

改变矩阵的维数

funm

一般的矩阵函数

F = funm(A,fun) 计算在方阵参数为 A 时用户定义的函数 funF = fun(x,k) 必须接受向量 x 和整数 k,返回大小相同的 x 的向量 f,其中 f(i) 是在 x(i) 条件下计算的函数 fun 的第 k 个导数。fun 表示的函数必须包含具有无限收敛半径的泰勒级数,被视为特殊情况的 fun = @log 除外

5.3.1 幂函数

        在MATLAB中,矩阵的幂运算是将矩阵中的每个元素进行乘方运算,在“.^”后面输入幂的次数。

        指数函数:Y = exp(X)

        对数函数:Y = log(X)

        平方根函数:B = sqrt(X)

        … …

5.3.2 矩阵的逆 Y = inv(X)

未完待续...

参考资料:

[1] 天工在线. MATLAB2020从入门到精通·实战案例版[M]. 北京: 中国水利水电出版社, 2020.

相关文章:

  • okHttp MediaType MIME格式详解
  • Java的堆如何分代的?
  • 吴恩达机器学习笔记十六 如何debug一个学习算法 模型评估 模型选择和训练 交叉验证测试集
  • SpringCloudGateway理论与实践
  • 【docker基础学习之】镜像构建
  • VLAN FAQ
  • WiFi模块助力少儿编程:创新学习与实践体验
  • 【kvm企业级虚拟化】之初级篇
  • uniapp直接连接wifi(含有ios和安卓的注意事项)
  • MySQL通过SQL语句进行递归查询
  • python 蓝桥杯之并查集
  • 自动驾驶功能场景 逻辑场景 具体场景解释
  • 【Linux系统】线程
  • 复盘-word
  • 公众号IP白名单已添加服务器IP 122.88... 依然给出 40164 错误
  • python3.6+scrapy+mysql 爬虫实战
  • Angular4 模板式表单用法以及验证
  • in typeof instanceof ===这些运算符有什么作用
  • Java新版本的开发已正式进入轨道,版本号18.3
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • miaov-React 最佳入门
  • mysql外键的使用
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • 从0到1:PostCSS 插件开发最佳实践
  • 给Prometheus造假数据的方法
  • 关于 Cirru Editor 存储格式
  • 前端工程化(Gulp、Webpack)-webpack
  • 嵌入式文件系统
  • 原生 js 实现移动端 Touch 滑动反弹
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • (0)Nginx 功能特性
  • (Note)C++中的继承方式
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (转) Face-Resources
  • (转)winform之ListView
  • .bat批处理(一):@echo off
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .NET Core 和 .NET Framework 中的 MEF2
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .NET Micro Framework初体验(二)
  • .NET版Word处理控件Aspose.words功能演示:在ASP.NET MVC中创建MS Word编辑器
  • .NET程序员迈向卓越的必由之路
  • .NET教程 - 字符串 编码 正则表达式(String Encoding Regular Express)
  • .project文件
  • @require_PUTNameError: name ‘require_PUT‘ is not defined 解决方法
  • [<事务专题>]
  • [AI]文心一言爆火的同时,ChatGPT带来了这么多的开源项目你了解吗
  • [ai笔记3] ai春晚观后感-谈谈ai与艺术
  • [Android] Amazon 的 android 音视频开发文档
  • [Asp.net mvc]国际化