一、数组的创建和操作

1.矩阵的输入

>> A=[]A =[]>> B=[6 5 3]B =6     5     3>> C=B'C =653

2.调用矩阵

>> A=[1 2 3 4 5]A =1     2     3     4     5>> a1=A(1)%访问数组第一个元素a1 =1>> a2=A(1:3)%访问数组第1、2、3个元素a2 =1     2     3>> a3=A(3:end)%访问数组第3个到最后一个元素a3 =3     4     5>> a4=A(end:-1:1)%数组元素反序输出a4 =5     4     3     2     1>> a5=A([1 5])%访问数组第1个及第5个元素a5 =1     5

3.子数组的赋值

>>
A=[1 2 3 4 5]
A(3)=5
A([1 4])=[1 1]A =1     2     3     4     5A =1     2     5     4     5A =1     2     5     1     5

二、MATLAB常用矩阵函数

1. 矩阵的构造与操作

zeros 生成元素全为0的矩阵

>> zeros(3:3)ans =0     0     00     0     00     0     0

ones 生成元素全为1的矩阵

>> ones(2:2)ans =1     11     1

eye 生成单位矩阵

>> eye(2:2)ans =1     00     1

rand 生成随机矩阵

>> rand(3:3)ans =0.8147    0.9134    0.27850.9058    0.6324    0.54690.1270    0.0975    0.9575
fliplr 矩阵左右翻转
flipud 矩阵上下翻转
triu  矩阵的上三角部分
tril 矩阵的下三角部分
diag 对角矩阵
full 将稀疏矩阵化为普通矩阵
sparse 生成稀疏矩阵
randn 生成正态分布随机矩阵

2. 矩阵运算函数

subspace 计算两个子空间的夹角
rref 矩阵的行最简形(初等行变换求解线性方程组)
orth 正交规范化
null 求基础解系(矩阵的零空间)
trace 方阵的迹%特征值的和等于迹
det 方阵的行列式
rank 矩阵的秩
normest 稀疏矩阵(或大规模矩阵)的2-范数估计
norm 矩阵或向量范数

3. 与线性方程有关的矩阵运算函数

pinv 矩阵的广义逆
qr 矩阵的正交三角分解
luinc 稀疏矩阵的不完全LU分解
ilu 稀疏矩阵的不完全LU分解
lu 矩阵的LU分解
linsolve 矩阵方程组的求解
cholinc 稀疏矩阵的不完全Cholesky分解
chol 矩阵的Cholesky分解(矩阵的平方根分解)
condest 稀疏矩阵1-范数的条件数估计
cond 方阵的条件数
inv 方阵的逆

4. 与特征值或奇异值有关的矩阵函数

eig 方阵的特征值与特征向量
svd 矩阵的奇异值分解
eigs 稀疏矩阵的一些(默认6个)最大特征值与特征向量
svds 矩阵的一些(默认6个)最大奇异值与向量
hess 方阵的Hessenberg形式分解
schur 方阵的Schur分解

三、数组的常见运算

1.数组的算术运算

dot数组的点积

sum数组元素的乘积之和

>> A=[1 2 3];
>> B=[4 5 6];
>> C=dot(A,B)C =32
>> D=sum(A.*B)D =32

2.数组的关系运算

关系运算的运算法则如下:
当两个比较量是标量时,直接比较两个数的大小。若关系成立,则返回的结果为1,否则为0。
当两个比较量是维数相等的数组时,逐一比较两个数组相同位置的元素,并给出比较结果。最终的关系运算结果是一个与参与比较的数组维数相同的数组,其组成元素为0或1。

>>
A=[1 2 3 5 7]
B=[2 3 5 5 8]
A<6
A>B
F=A==BA =1     2     3     5     7B =2     3     5     5     8ans =1×5 logical 数组1   1   1   1   0ans =1×5 logical 数组0   0   0   0   0F =1×5 logical 数组0   0   0   1   0

3.数组的逻辑运算

在 MATLAB中数组提供了3种数组逻辑运算符,即&(与)、|(或)和~(非)。逻辑运算的运算法则如下:
如果是非零元素则为真,用1表示;反之是零元素则为假,用0表示。
当两个比较量是维数相等的数组时,逐一比较两个数组相同位置的元素,并给出比较结果。最终的关系运算结果是一个与参与比较的数组维数相同的数组,其组成元素为0或1。
与运算(a&b)时,a、b全为非零,则为真,运算结果为1;或运算(ab)时,只要a、b有一个为非零,则运算结果为1;非运算(~a)时,若a为0,运算结果为1,a为非零,运算结果为0。

>>C=A&B %与D=A|B %或E=~B  %非C =1×5 logical 数组1   1   1   1   1D =1×5 logical 数组1   1   1   1   1E =1×5 logical 数组0   0   0   0   0

四、矩阵操作

1.创建矩阵

compan(p):生成一个特征多项式为p的二维矩阵
hadamard(k):返回一个阶数为n=2k的Hadamard矩阵,只有当n能被4整除时Hadamard矩阵才存在
hankel(x):返回一个由向量x定义的 Hankel方阵。该矩阵是一个对称矩阵,其元素为h一x+j-a,第1列为向量x,反三角以下的元素为0
hankel(x,y):返回一个mXn的Hankel矩阵,它的第1列为向量x,最后一行为向量y
magic(n):返回一个nXn的魔方矩阵
pascal(n):返回一个n×n的Pascal矩阵
rosser:给出Rosser 矩阵,这是一个经典对称特征测试问题,它的大小是8×8
vander(x):返回一个Vandermonde矩阵,其元素为v,=x"',n为向量x的长度
wilkinson(n):返回一个m×n的-Wilkinson特征值测试矩阵

(1)希尔伯特矩阵

希尔伯特(Hilbert)矩阵,也称H阵,其元素为H(第i行第j列)/(i+j-1)。由于它是一个条件数差
的矩阵,所以将它用来作为试验矩阵。
关于希尔伯特矩阵的指令函数如下:
hilb(n):用于生成一个n×n的希尔伯特矩阵。
invhilb(n):用于生成一个nXn的希尔伯特矩阵的逆矩阵整数矩阵。

>> A=hilb(3)A =1.0000    0.5000    0.33330.5000    0.3333    0.25000.3333    0.2500    0.2000>> B=invhilb(3)B =9   -36    30-36   192  -18030  -180   180

(2)托普利兹(Toeplitz)矩阵
另外一个比较重要的矩阵为托普利兹(Toeplitz)矩阵,它由两个向量定义,一个行向量和一个列向量。对称的托普利兹矩阵由单一向量来定义。
关于托普利兹矩阵的指令函数如下:
toeplitz(k,r):用于生成非对称托普利兹矩阵,第1列为k,第1行为r,其余元素等于其左上角元素。

(3)范德蒙行列式

>> A=vander([1 2 3 4])A =1     1     1     18     4     2     127     9     3     164    16     4     1
>> B=vander([1;2;3;4])B =1     1     1     18     4     2     127     9     3     164    16     4     1
>> C=vander(1:.5:3)C =1.0000    1.0000    1.0000    1.0000    1.00005.0625    3.3750    2.2500    1.5000    1.000016.0000    8.0000    4.0000    2.0000    1.000039.0625   15.6250    6.2500    2.5000    1.000081.0000   27.0000    9.0000    3.0000    1.0000

五、改变矩阵的大小

C=[A B]在水平方向合并矩阵A和B,而表达式C=[A B]在水平方向合并矩阵A和B,而表达式C=[A;B]在竖直方向合并矩阵A和B。

1.矩阵的合并

>> C=toeplitz(2:5,2:2:8)C =2     4     6     83     2     4     64     3     2     45     4     3     2
>> a=ones(3,4)b=zeros(3,4)c=[a;b]d=[a b]a =1     1     1     11     1     1     11     1     1     1b =0     0     0     00     0     0     00     0     0     0c =1     1     1     11     1     1     11     1     1     10     0     0     00     0     0     00     0     0     0d =1     1     1     1     0     0     0     01     1     1     1     0     0     0     01     1     1     1     0     0     0     0

2.矩阵行列的删除

如果想删除矩阵的第二行

>> A=rand(4,4)A =0.7922    0.8491    0.7431    0.70600.9595    0.9340    0.3922    0.03180.6557    0.6787    0.6555    0.27690.0357    0.7577    0.1712    0.0462>> A(2,:)=[]%删除矩阵的第二行A =0.7922    0.8491    0.7431    0.70600.6557    0.6787    0.6555    0.27690.0357    0.7577    0.1712    0.0462

六:矩阵元素的查找

1.ind=find(X) :查找矩阵X中的非零元素,函数返回这些元素的单下标。

>> A=[1 3 0;3 1 0;9 2 4]A =1     3     03     1     09     2     4>> B=find(A)%矩阵中非零元素的下标B =1234569>> C=find(A>=1)C =1234569
>> D=A(A>=1)%矩阵中大于等于1的元素D =1393124>> A(find(A==0))=10%矩阵中等于0的元素改为10A =1     3    103     1    109     2     4

七、矩阵元素的排序

>>  A=[1 3 0;3 1 0;9 2 4];
B=sort(A);
A=[1 3 0;3 1 0;9 2 4];
B=sort(A);%矩阵元素按照列进行升序排序
C=sort(A,2);%矩阵元素按照行进行升序排序
D=sort(A,'descend');%矩阵元素按照列进行降序排序
E=sort(A,2,'descend');%矩阵元素按照行进行降序排序
>> BCDE=[B C;D E]BCDE =1     1     0     0     1     33     2     0     0     1     39     3     4     2     4     99     3     4     3     1     03     2     0     3     1     01     1     0     9     4     2

八、矩阵元素的求和

>> clear all;
A=[1 3 0;3 1 0;9 2 4];
B=sum(A)%矩阵中元素按照列进行求和
C=sum(A,2)%矩阵中元素按照行进行求和
D=cumsum (A)%矩阵中各列元素的和
E=cumsum (A,2)%矩阵中各行元素的和
F=sum(sum (A))%矩阵中所有元素的和
B =13     6     4C =4415D =1     3     04     4     013     6     4E =1     4     43     4     49    11    15F =23

九、矩阵元素的求积

>> clear all;A= magic(3)B=prod (A)%矩阵各列元素的积
C=prod (A,2)%矩阵各行元素的积
D=cumprod (A)%矩阵各列元素的积
E=cumprod(A,2)%矩阵各行元素的积A =8     1     63     5     74     9     2B =96    45    84C =4810572D =8     1     624     5    4296    45    84E =8     8    483    15   1054    36    72

十、矩阵的分析

norm 矩阵或向量范数

normest 稀疏矩阵(或大规模矩阵)的2-范数估计

rank 矩阵的秩

det 方阵的行列式

trace 方阵的迹%特征值的和等于迹

null 求基础解系(矩阵的零空间)

orth 正交规范化

rref 矩阵的行最简形(初等行变换求解线性方程组)

subspace 计算两个子空间的夹角

十一、矩阵的分析

chol:Cholesky分解:对称正定矩阵的 Cholesky 分解
Cholesky分解在MATLAB中用函数chol()来实现,其常用的调用方式如下:
R = chol(X):其中X为对称正定矩阵,R是上三角矩阵,使得 X=R'·R。如果X是非正定的,则结果将返回出错信息。
[R,p] = chol(X):返回两个参数,并且不会返回出错信息。当X是正定矩阵时,返回的上三角矩阵R满足X=-R'·R,且p=0;当X是非正定矩阵时,返回值p是正整数,R是上三角矩阵,其阶数为p-1,且满足X(1:p-1,1:p-1)=R -R    
cholinc:稀疏矩阵的不完全 Cholesky分解
lu:矩阵LU分解
luinc:稀疏矩阵的不完全LU分解
qr:正交三角分解
svd:奇异值分解
gsvd:一般奇异值分解
schur:舒尔分解

MATLAB:矩阵(基础知识)相关推荐

  1. 矩阵分析与应用(一)——矩阵基础知识、广义逆

    文章目录 前言 部分符号约定 关于矩阵理论的碎碎念 一些基础知识与本门课知识串讲 矩阵奇异与线性无关 向量空间.内积.范数 行列式.特征值.迹 逆.广义逆 矩阵方程.向量化.Kronecker积 向量 ...

  2. 第三章:MATLAB的基础知识(基本符号,数据类型,运算符,复数运算,三角函数运算)

    matlab基础知识 3.1. MATLAB命令的组成 3.1.1. 基本符号 3.1.2. 功能符号 3.1.3. 常用指令 3.2. 数据类型: 3.2.1. 变量与常量 3.2.2. 数值: 3 ...

  3. MATLAB 语言基础知识 矩阵和数组 创建、串联和扩展矩阵

    最基本的MATLAB数据结构体是矩阵.矩阵是按行和列排列的数据元素的二维矩形数组.元素可以是数字.逻辑值(true 或 false).日期和时间.字符串或者其他MATLAB数据类型. 即使一个数字也能 ...

  4. 1.MATLAB图像处理基础知识

    更多MATLAB图像处理视频请点击  http://study.163.com/course/courseMain.htm?courseId=1003594013 在MATLAB中,基本数据结构为数列 ...

  5. 图像处理基础知识及matlab,MATLAB图像处理基础知识

    1.MATLAB支持的图像文件格式 (1)JPEG(Joint Photographic Experts Group):一种称为联合图像专家组的图像压缩格式. (2)BMP(Windows Bitma ...

  6. matlab 矩阵数组知识

    Matlab是一个专业的数学软件,其中矩阵和数组是其重要的数据类型.矩阵和数组都是由数值组成的数据集合,但在Matlab中,它们有着不同的属性和用法. 在Matlab中,矩阵是一个二维数组,其中所有的 ...

  7. MATLAB计算基础知识

    (一) MATLAB系统常量函数 (二) 常用的特殊矩阵生成函数 (三) 预定义变量(1)元胞数组 元胞数组是MATLAB中一种特殊的数据类型.元胞数组的基本组成单位是"元胞",元 ...

  8. matlab实现图像放大两倍,matlab图像处理基础知识0(双线性插值matlab实现--调整水平和垂直放大倍数)...

    需求说明:图像处理FPGA实现前期算法准备 当前算法:已通过matlab验证成功 function scaler_bilinear() %-----------------------------0: ...

  9. 正交变换在基下的矩阵都是可逆阵_矩阵分析与应用(一,矩阵基础知识)

    前言:花了一个半月时间学习了 北大丘维声的<高等代数>.北理史荣昌的<矩阵分析>.清华张贤达的<矩阵分析与应用>:北大与哈工大的网课. 本质:(万物皆矩阵)矩阵论主 ...

  10. matlab的模型文件扩展名,[转载]matlab simulink基础知识

    Simulink 是面向框图的仿真软件. 7.1 演示一个Simulink 的简单程序 [例7.1]创建一个正弦信号的仿真模型. 步骤如下: (1) 在MATLAB 的命令窗口运行simulink 命 ...

最新文章

  1. R语言学生化的极差分布函数Studentized Range Distribution(ptukey qtukey )实战
  2. element not visible的解决方法
  3. HDU 1180 诡异的楼梯
  4. LeetCode Longest Absolute File Path(栈和前缀和解法)
  5. MaxCompute Console 实用小命令
  6. python创建数据库字数不限制_textarea字数限制方法一例
  7. 一文搞定C语言指针问题
  8. Spring Cloud 设置Feign的日志记录级别
  9. STM32CubeMX使用(六)之RTC及制作时间戳
  10. 转 黑客帝国解读 Matrix的世界
  11. BZOJ5218[Lydsy2017省队十连测] 友好城市
  12. ubuntu上的翻译软件,看论文神器
  13. 朋友:趣头条上市了!我:谁?
  14. js中如何解决跨域问题
  15. 黑客必会之——Windows入侵痕迹清理--你学会了吗?
  16. Kali Linux查看信息
  17. flutter 九宫格菜单_Flutter 仿微信/微博九宫格
  18. 图文档管理系统-让企业图文档管理“井井有条”
  19. 计算机常用软件英文读音,常用软件,software,音标,读音,翻译,英文例句,英语词典...
  20. 【Git 系列】一个超好用的命令你会用吗?

热门文章

  1. 【五一创作】自动驾驶技术未来大有可为
  2. 云计算中的 10 种虚拟化类型
  3. 在移动硬盘上装Win PE的步骤 -------转载
  4. Python-七段数码管的绘制
  5. kali从入门到入狱之使用Hping3进行DDos攻击
  6. mysql2005安装_超详细的sql2005图解安装全过程
  7. GIt+jenkins代码自动上线
  8. 机器学习中的先验、后验和似然
  9. 高数__已知一个平面方程_求平行的平面,并且经过某点
  10. 谷歌浏览器插件:json处理工具JSONVue