Matlab矩阵

2023-11-05

1.通用的特殊矩阵

zeros函数:产生全0矩阵。

ones函数:产生全1矩阵。

eye函数:产生对角线为1的矩阵。当矩阵是方阵时,得到一个单位矩阵。

rand函数:产生(0,1)区间均匀分布的随机矩阵。

randn函数:产生均值为0,方差为1的标准正态分布随机矩阵

zeros函数的调用格式:

zeros(m):产生m×m零矩阵。

 zeros(3)

ans =

     0     0     0
     0     0     0
     0     0     0

zeros(m,n):产生m×n零矩阵。

 zeros(3,2)

ans =

     0     0
     0     0
     0     0

zeros(size(A)):产生与矩阵A同样大小的零矩阵。

>> A = zeros(2,3);
>> zeros(size(reshape(A,3,2)))

ans =

     0     0
     0     0
     0     0

2.用于专门学科的特殊矩阵

2.1魔方矩阵(Magic Square)

n阶魔方阵由1,2,3,…,n平方共n平方个整数组成,且每行、每列,主、副对角线上各n个元素之和都相等。

n阶魔方阵每行每列元素的和为(1+2+3+…+ n平方)/n=(n+n立方)/2

n>2时有很多不同的n阶魔方阵,MATLAB函数magic(n)产生一个特定的魔方阵。

>> M=magic(3)
M =
8 1 6
3 5 7
4 9 2

2.2范德蒙矩阵

范得蒙矩阵的最后一列全为1,即向量v各元素的零次方,倒数第二列为指定的向量v,

即向量v各元素的一次方, 其他各列是其后列与倒数第二列的点乘积

>> A = vander(1:5)

A =

     1     1     1     1     1
    16     8     4     2     1
    81    27     9     3     1
   256    64    16     4     1
   625   125    25     5     1

2.3希尔伯特矩阵在这里插入图片描述

>> format rat
>> H = hilb(4)

H =

       1              1/2            1/3            1/4     
       1/2            1/3            1/4            1/5     
       1/3            1/4            1/5            1/6     
       1/4            1/5            1/6            1/7     

2.4伴随矩阵在这里插入图片描述

MATLAB生成伴随矩阵的函数是compan§,其中p是一个多项式的系数向量,高次幂系数排在前,低次幂排在后。

例如,生成多项式x3-2x2-5x+6的伴随矩阵。

>> p = [1,-2,-5,6];
>> A = compan(p)

A =

       2              5             -6       
       1              0              0       
       0              1              0       

2.5 帕斯卡矩阵

把二项式系数依次填写在矩阵的左侧对角线上,然后提取左侧的n行n列元素即为n阶帕斯卡(Pascal)矩阵。

帕斯卡矩阵的第一行元素和第一列元素都为1,其余位置的元素是该元素的左边元素与上面元素相加,即P(i,j)=P(i,j-1)+P(i-1,j),且P(i,1)=1,P(1,j)=1。

函数pascal(n)生成一个n阶帕斯卡矩阵。

>> format rat
>> P = pascal(5)

P =

       1          1          1          1      1              
       1          2          3          4      5            
       1          3          6         10      15            
       1          4         10         20      35           
       1          5         15         35      70            

3.矩阵变换

3.1对角阵

对角阵:只有对角线上有非零元素的矩阵

数量矩阵:对角线上的元素相等的对角矩阵

单位矩阵:对角线上的元素都为1的对角矩阵

(1) 提取矩阵的对角线元素

diag(A):提取矩阵A主对角线元素,产生一个列向量

diag(A,k):提取矩阵A第k条对角线的元素,产生一个列向量

(2) 构造对角阵

diag(V):以向量 V为主对角线元素,产生对角矩阵

diag(V,k):以向量 V为第k条对角线元素,产生对角矩阵

3.2三角阵

上三角阵:矩阵的对角线以下的元素全为零的矩阵。

下三角阵:对角线以上的元素全为零的矩阵。

(1)上三角矩阵

triu(A):提取矩阵A的主对角线及以上的元素。

triu(A,k):提取矩阵A的第k条对角线及以上的元素。

>> triu(ones(4),-1)
ans =
     1     1     1     1
     1     1     1     1
     0     1     1     1
     0     0     1     1

(2) 下三角矩阵

在MATLAB中,提取矩阵A的下三角矩阵的函数是tril,其用法与triu函

数完全相同。

tril(A):提取矩阵A的主对角线及以上的元素。

tril(A,k):提取矩阵A的第k条对角线及以上的元素。

3.3矩阵的转置

矩阵的转置:

把源矩阵的第一行变成目标矩阵的第一列,第二行变成第二列,…,依此类推。

如果矩阵的元素是实数,那么转置和共轭转置的结果是一样的。

转置运算符是小数点后面接单引号(.’)。

共轭转置(共轭复数,两个实部相等,虚部互为相反数的复数互为共轭复数(conjugate complex number)),其运算符是单引号(’),它在转置的基础上还要取每个数的复共轭。

>> A = [1,3;3+4i,1-2i]

A =

   1.0000 + 0.0000i   3.0000 + 0.0000i
   3.0000 + 4.0000i   1.0000 - 2.0000i

>> A.'

ans =

   1.0000 + 0.0000i   3.0000 + 4.0000i
   3.0000 + 0.0000i   1.0000 - 2.0000i

>> A'

ans =

   1.0000 + 0.0000i   3.0000 - 4.0000i
   3.0000 + 0.0000i   1.0000 + 2.0000i

3.4矩阵的旋转

rot90(A,k):将矩阵A逆时针方向旋转90º的k倍,当k为1时可省略

>> A = [1,3,2;-3,2,1;4,1,2]

A =

     1     3     2
    -3     2     1
     4     1     2

>> rot90(A)

ans =

     2     1     2
     3     2     1
     1    -3     4

>> rot90(A,2)

ans =

     2     1     4
     1     2    -3
     2     3     1

3.5矩阵的翻转

fliplr(A):对矩阵A实施左右翻转

flipud(A):对矩阵A实施上下翻转。

3.6矩阵的求逆

inv(A):求方阵A的逆矩阵。
在这里插入图片描述

4.矩阵求值

4.1方阵的行列式

det(A):求方阵A所对应的行列式的值。

4.2矩阵的秩(不懂)

矩阵线性无关的行数或列数称为矩阵的秩

rank(A):求矩阵A的秩

4.3矩阵的迹

矩阵的迹等于矩阵的对角线元素之和,也等于矩阵的特征值之和。

trace(A):求矩阵A的迹。

4.4向量和矩阵的范数

用来度量矩阵或向量在某种意义下的长度

(1)向量的3种常用范数

向量1—范数:向量元素的绝对值之和。
在这里插入图片描述

向量2—范数:向量元素绝对值的平方和的平方根。
在这里插入图片描述

向量∞—范数:所有向量元素绝对值中的最大值
在这里插入图片描述
在MATLAB中,求向量范数的函数为:

norm(V)或norm(V,2):计算向量V的2—范数。

norm(V,1):计算向量V的1—范数。

norm(V,inf):计算向量V的∞—范数。

(2)矩阵的范数

矩阵A的1—范数:所有矩阵列元素绝对值之和的最大值。

矩阵A的2—范数:A’A矩阵的最大特征值的平方根,其中λ1为A’A的最大特征值。
在这里插入图片描述

矩阵A的∞—范数:所有矩阵行元素绝对值之和的最大值。
在这里插入图片描述

在MATLAB中,求矩阵范数的函数为:

norm(V)或norm(V,2):计算向量V的2—范数。

norm(V,1):计算向量V的1—范数。

norm(V,inf):计算向量V的∞—范数。

4.5矩阵的条件数

矩阵A的条件数等于A的范数与A的逆矩阵的范数的乘积

条件数越接近于1,矩阵的性能越好,反之,矩阵的性能越差

cond(A,1):计算A的1—范数下的条件数。

cond(A)或cond(A,2):计算A的2—范数数下的条件数。

cond(A,inf):计算A的∞—范数下的条件数。

5.矩阵的特征值与特征向量

5.1矩阵特征值

设A是n阶方阵,如果存在常数λ和n维非零列向量x,使得等式Ax=λx成立,则称λ为A的特征值,x是对应特征值λ的特征向量。

在MATLAB中,计算矩阵的特征值和特征向量的函数是eig,常用的调用格式

有两种:

E=eig(A):求矩阵A的全部特征值,构成向量E。

[X,D]=eig(A):求矩阵A的全部特征值,构成对角阵D,并产生矩阵X,X各列是相应的特征向量。

5.2特征值的几何意义

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.稀疏矩阵

完全存储方式:将矩阵的全部元素按列存储。

稀疏存储方式:只存储矩阵的非零元素的值及其位置,即行号和列号。
在这里插入图片描述

6.1稀疏存储方式的产生

(1)完全存储方式与稀疏存储方式之间的转化

A=sparse(S):将矩阵S转化为稀疏存储方式的矩阵A。

S=full(A):将矩阵A转化为完全存储方式的矩阵S。

>> A = sparse(eye(5))
A =
   (1,1)        1
   (2,2)        1
   (3,3)        1
   (4,4)        1
   (5,5)        1

>> B = full(A)
B =
     1     0     0     0     0
     0     1     0     0     0
     0     0     1     0     0
     0     0     0     1     0
     0     0     0     0     1

(2)直接建立稀疏存储矩阵

sparse函数的其他调用格式:

sparse(m,n):生成一个m×n的所有元素都是零的稀疏矩阵。

sparse(u,v,S):其中u、v、S是3个等长的向量。S是要建立的稀疏存储矩阵的非零元素,u(i)、v(i)分别是S(i)的行和列下标

>> A = sparse([1,2,2],[2,1,4],[4,5,-7])
A =
   (2,1)        5
   (1,2)        4
   (2,4)       -7

>> B = full(A)
B =
     0     4     0     0
     5     0     0    -7

使用spconvert函数直接建立稀疏存储矩阵,其调用格式为:

B=spconvert(A)

其中,A为一个m×3或m×4的矩阵,其每行表示一个非零元素,m是非零元素的个数。

A(i,1)表示第i个非零元素所在的行。

A(i,2)表示 第i个非零元素所在的列。

A(i,3)表示第i个非零元素值的实部。

A(i,4)表示第i个非零元素值的虚部。若矩阵的全部元素都是实数,则无须第4列。

(3)带状稀疏矩阵的稀疏存储

所有非零元素集中在对角线上的矩阵

[B,d]=spdiags(A):从带状稀疏矩阵A中提取全部非零对角线元素赋给矩阵B,这些非零对角线的位置向量d。

A=spdiags(B,d,m,n):产生带状稀疏矩阵的稀疏存储矩阵A,

(其中m、n为原带状稀疏矩阵的行数与列数,矩阵B的第i列即为原带状稀疏矩阵的第i条非零对角线,向量d为原带状稀疏矩阵所有非零对角线的位置。)

>> A = [11,0,0,12,0,0;0,21,0,0,22,0;0,0,31,0,0,32;41,0,0,42,0,0;0,51,0,0,52,0]

A =

    11     0     0    12     0     0
     0    21     0     0    22     0
     0     0    31     0     0    32
    41     0     0    42     0     0
     0    51     0     0    52     0

>>  [B,d] = spdiags(A)
B =
     0    11    12
     0    21    22
     0    31    32
    41    42     0
    51    52     0

d =

    -3
     0
     3

利用带状稀疏矩阵非零对角线元素组成的矩阵B,以及对角线位置组成的向量d,命令执行后产生一个稀疏存储矩阵A。

>> A = spdiags(B,d,5,6)

A =
   (1,1)       11
   (4,1)       41
   (2,2)       21
   (5,2)       51
   (3,3)       31
   (1,4)       12
   (4,4)       42
   (2,5)       22
   (5,5)       52
   (3,6)       32

(4)单位矩阵的稀疏存储

speye(m,n)返回一个m×n的稀疏存储单位矩阵。

>> speye(3)
ans =
   (1,1)        1
   (2,2)        1
   (3,3)        1

6.2稀疏矩阵应用举例

在这里插入图片描述
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Matlab矩阵 的相关文章

  • UDP接收和发送Matlab

    我目前正在努力从外部设备接收数据包 然后将数据发送到另一个设备 我有一个工作 Simulink 模型 但我不知道如何在 Matlab 中对其进行编码 Matlab 中 UDP 接收块的参数如下图所示UDP 接收参数 https i stac
  • 如何从一个清晰的例子计算二维图像中的吉布斯能量

    我有一个关于矩阵的有趣问题 在吉布斯分布中 吉布斯能量U x 可以计算为 这是所有可能的派系 C 上的派系势 Vc x 的总和 右图 团 c 被定义为 S 中站点的子集 x 蓝色像素的邻域是左图中黄色像素的邻居 其中每对不同的站点都是邻居
  • matlab 中的 for 或 while 循环

    我刚刚开始在编程课的 matlab 中使用 for 循环 基本的东西对我来说很好 但是我被要求 使用循环创建一个 3 x 5 矩阵 其中每个元素的值是其行号其列号除以行号和列号之和的幂 例如元素 2 3 的值为 2 3 2 3 1 6 那么
  • MATLAB 中的内存映射文件?

    我决定使用 memmapfile 因为我的数据 通常为 30Gb 到 60Gb 太大 无法放入计算机内存中 我的数据文件由两列数据组成 对应于两个传感器的输出 并且它们采用 bin 和 txt 格式 m memmapfile G E Str
  • 如何使用 MATLAB 的“等值面”函数创建三角球体

    如何创建一个三角球体 其中每个三角形的面面积相同 我想要这样的东西 http imageshack us a img198 5041 71183923 png http imageshack us a img198 5041 7118392
  • 如何在 MATLAB 的 for 循环中读取多个图像?

    我已将结果分段放在一个文件夹中 这些需要在 for 循环中读取并在循环中进一步处理 我尝试阅读如下 for i 1 10 file name dir strcat C Users adminp Desktop dinosaurs im im
  • Matlab 中是否有相当于 R 的 dput() 的函数?

    Matlab 中是否有相当于 R 的 dput 的函数 dput 将 R 对象的 ASCII 文本表示形式写入文件或连接 UPDATE 1 添加了递归和对单元格的支持 UPDATE 2 添加了对结构的支持 UPDATE 3 增加了对逻辑 整
  • 一次分配多个字段的聪明方法?

    由于遗留函数调用 我有时被迫编写像这样的丑陋的包装器 function return someWrapper someField a someField a b someField b and so on realistically it
  • 对多个属性使用一种设置方法 MATLAB

    我有几个属性基本上使用相同的属性set method classdef MyClass properties A B end methods function mc MyClass a b Constructor mc A a mc B b
  • 在 Excel 中打印 MATLAB 图窗并调整其大小

    我在 MATLAB 中有两个带有手柄的图形hFig1 and hFig2 我想将它们打印到 Excel 中的特定单元格 单元格 E3 和 I3 并将它们重新调整为 2 英寸 x 3 英寸 我尝试过使用 AddPictures对象处理程序和使
  • 使用 GPU 进行 Matlab 卷积

    我用gpuArray尝试了matlab的卷积函数conv2 convn 例如 convn gpuArray rand 100 100 10 single gpuArray rand 5 single 并将其与 cpu 版本 convn ra
  • matlab mex 文件和 C++ dll (Windows)

    我有一个带有 Test 类的 DLL 标题 class MY EXPORT Test public int doit const string str 和来源 int Test doit const string str return in
  • MATLAB 中最有效的矩阵求逆

    在 MATLAB 中计算某个方阵 A 的逆矩阵时 使用 Ai inv A should be the same as Ai A 1 MATLAB 通常会通知我这不是最有效的求逆方法 那么什么是更有效率的呢 如果我有一个方程系统 可能会使用
  • 在另一列中添加具有特定条件的一列,如 excel 的 sumif

    我有一个像这样的矩阵 A 1 2 2 3 3 4 4 5 5 6 6 8 7 9 8 5 9 4 现在我想添加第二列 条件是如果 limit 0 interval 3 且 limit limit interval 或者换句话说 当第 1 列
  • 如何在 Matlab 中使用谷歌翻译?

    我正在编写一个程序 使用 Matlab 列出电影字幕文件中的所有唯一单词 现在我有一个独特的单词列表 我想将其翻译成我的语言并在观看电影之前了解其含义 有谁知道如何在 Matlab 中使用 Google Translate 以便完成我的脚本
  • 不等间隔时间序列的移动平均线

    我有一个证券交易所股票价格的数据集 时间 价格 但数据点之间的间隔并不相等 从 1 到 2 分钟不等 在这种情况下计算移动平均值的最佳实践是什么 如何在Matlab中实现呢 我倾向于认为 点的权重应该取决于自上一个点以来的最后时间间隔 Ma
  • Simulink 仿真引擎如何工作?

    我想了解 Simulink 仿真引擎的工作原理 它是否使用离散事件模拟机制 那么如何处理连续时间 它是否依赖于基于静态循环的代码生成 或者 在第一个周期之前 它会计算出块的执行顺序 从不需要任何其他块输入的块开始 每个周期 它都会根据输入和
  • 使用 MATLAB 进行线路跟踪

    我有一个图像 我想将其转换为逻辑图像 包括线条为黑色 背景为白色 当然 可以使用阈值方法来实现这一点 但我不想使用这种方式来做到这一点 我想通过使用线路跟踪方法或类似的方法来检测它 这是关于视网膜血管检测的 我找到了一个article ht
  • MATLAB 教程中的 SIFT 实现

    我正在寻找 MATLAB 中的一些基本 SIFT 实现 我需要从第一原则来写它 另外 我正在寻找一些可以解释程序中发生的事情的内容 Vedali 的代码和 David Lowe 的代码超出了我的理解范围 如果您是 Matlab 用户 您一定
  • Matlab 和 Python 中的优化算法(dog-leg trust-region)

    我正在尝试使用 Matlab 和 Python 中的狗腿信赖域算法求解一组非线性方程 在Matlab中有fsolve https www mathworks com help optim ug fsolve html其中此算法是默认算法 而

随机推荐

  • matlab怎么导出矩阵,如何用matlab 生成矩阵

    随便敲了些和lz类似的关系数字 把你的数字放到这个txt文件里就可以了 比如你有一个txt文件叫numbers txt 里头的数字如下 2 3 1 3 4 1 3 9 1 10 9 1 4 6 1 9 6 1 8 10 1 程序如下 cle
  • 全排列的价值 python实现 蓝桥杯 2137

    问题描述 对于一个排列 A a1 a2 an 定义价值 ci 为 a1 至 ai 1 中小于 ai 的数 的个数 即 ci aj j
  • AI大语言模型时代构建全新数据平台

    在大语言模型的引领下 数据平台领军企业 Databricks 和 Snowflake 的未来重置 探讨了 Databricks 和 Snowflake 等知名平台 存储领域的 Delta udi Iceberg 还是实时化数据处理领域的 D
  • 双向链表的创建以及增删改查

    实现起来其实不难 于是我把代码做了优化 模仿了stm32的库函数哈哈哈 便于理解和修改 不足之处请指出 include stdio h include stdlib h 宏定义 define ElementType int define u
  • 免费java视频教程大全在线观看

    下面是免费java视频教程大全在线观看 尚学堂马士兵报表组件JFreeChart 尚学堂的项目管理工具 尚硅谷java20天 尚硅谷SVN 更多java视频与学习资料大家就到这里了解一下吧 http java 662p com forum
  • Java启动本机应用程序EXE的三种方式

    第一种方式 利用cmd方式 执行cmd命令 param command throws IOException public static String executeCmd String command throws IOException
  • 解决IE识别ES6语法

    使用jq做项目时 混用了部分es6的语法 导致在IE下项目无法正常运行 于是乎 便在网上找到了下面两种方法 并尝试了一下 一 直接在浏览器中引入browser min js 并且将script的type设置成text babel 尝试了在网
  • laravel 中 使用 composer 的中国镜像安装时报错(找不到包)

    composer require jenssegers mongodb 安装mongodb时报错 Your requirements could not be resolved to an installable set of packag
  • SpringBoot Admin集成诊断利器Arthas实践

    前言 Arthas 是 Alibaba开源的Java诊断工具 具有实时查看系统的运行状况 查看函数调用参数 返回值和异常 在线热更新代码 秒解决类冲突问题 定位类加载路径 生成热点图 通过网页诊断线上应用 如今在各大厂都有广泛应用 也延伸出
  • 使用docker搭建elk

    一 安装前须知 以下步骤在 VMware 中的 centos 7 中操作 ip 地址为 192 168 161 128 注意安装的时候最好统一版本 否则后面会出现许多问题 进官网搜索对应镜像 查看 Tags 标签下的版本 目前我这最新的 T
  • Transformer怎么入门?如何学习Transformer?

    Transformer比较好学 整个路线也非常简单 就三步 第一步 理论学习 理论学习部分首先要了解Attention机制 这里推荐李宏毅老师的机器学习 或者看他的PPT 讲的很清楚 国外的也有斯坦福的CS25 Transformers U
  • 校园资料分享平台的设计与开发、资料分享

    目录 1 使用框架和技术 2 功能展示与说明 3 系统展示 3 1 使用到技术 3 2 前台展示 3 3 后台界面 4 论文资料和程序 在教育领域 使用IT技术可以使任何人 任何地方和任意的时间 都可以获得需要的资料 但现在的校园大多是综合
  • [stable-diffusion-art] 指北-4 模型

    Beginner s guide to Stable Diffusion models and the ones you should know Stable Diffusion ArtHow to install use and merg
  • 史上最全的 Python 3 类型转换指南

    int 支持转换为 int 类型的 仅有 float str bytes 其他类型均不支持 float gt int 会去掉小数点及后面的数值 仅保留整数部分 int 12 94 12 str gt int 如果字符串中有数字 0 9 和正
  • Windows下误删文件解决办法

    推荐几款优秀的数据恢复软件 Disk Drill Disk Drill是一款免费软件 支持支Windows 与 Mac 使用它能我们找回磁盘 U盘 等各种储存装置的视频 照片 文章等各类文件 最早了解这款软件还是当初帮一个妹纸的电脑恢复照片
  • 中国电信定制的中兴 ZXV10 B760H 机顶盒root全程记录

    家里有台机顶盒 是中兴 ZXV10 B760H 它是智能机顶盒 在写这篇文章之前 我已經对它进行了破解 别看是 智能机顶盒 但实际上已經让中国电信阉割的差不多了 只能看IPTV 我这个破解可以让它安装第三方app 今天重点讲root 你需要
  • ————博客永久废止————转到http://1su.net/nsB

    由于CSDN博客太难以管理 博主转向Ghost Blog Node的博客引擎 该博客永久废止 新的博客地址为http 1su net nsB
  • FutureTask 源码 并发设计模式

    一 代码 https www jianshu com p 60f661d95d53 public static void main String args throws Exception Callable
  • spring应用上下文的理解

    spring应用上下文的理解 容器 什么叫容器呢 如果你想要一个手机 好这时候spring就给你一个手机 你想要使用的对象 spring就会给你 但是现在我们就会问那spring给的对象来自于哪里呢 spring要负责的工作很多 那么多对象
  • Matlab矩阵

    1 通用的特殊矩阵 zeros函数 产生全0矩阵 ones函数 产生全1矩阵 eye函数 产生对角线为1的矩阵 当矩阵是方阵时 得到一个单位矩阵 rand函数 产生 0 1 区间均匀分布的随机矩阵 randn函数 产生均值为0 方差为1的标