matlab 矩阵逻辑与,MATLAB自学笔记(七):数组运算与矩阵操作
数组运算
1.数组的创建与操作
普通创建方式:
Python
>> A = [];
>> B = [1 2 3 4 5];
>> C = [1,2,3,4,5];
>> D = [1;2;3;4;5];
>> E = B'; %转置
1
2
3
4
5
>>A=[];
>>B=[12345];
>>C=[1,2,3,4,5];
>>D=[1;2;3;4;5];
>>E=B';%转置
利用冒号创建一维数组:
Python
>> A = 0:5;
>> B = 0.1:0.3:8;
>> C = 8:-1:0;
1
2
3
>>A=0:5;
>>B=0.1:0.3:8;
>>C=8:-1:0;
利用logspace函数创建一维数组:
y = logspace(a,b):创建行向量y,第一个元素为10^a,最后一个元素为10^b,形成总数为50个元素的等比数列;
y = logspace(a,b,n):创建行向量y,第一个元素为10^a,最后一个元素为10^b,形成总数为n个元素的等比数列。
利用linespace函数创建一维数组:
y = linespace(a,b):创建行向量y,第一个元素为a,最后一个元素为b,形成总数为100个元素的等差数列;
y = linespace(a,b,n):创建行向量y,第一个元素为a,最后一个元素为b,形成总数为n个元素的等差数列。
2.数组间的运算
基本运算:
加、减、乘、左除、右除、乘方
加减:(A+B、A-B)要求A、B维数相同
乘法:(A.*B)数组对应元素相乘,计算结果是与A、B相同维度的数组。要求A、B维数相同
除法:左除./ 右除.\ 要求A、B维数相同
Python
>> A = [1 5 8 7 6];
>> B = [2 7 3 0 2];
>> C = A.*B
C =
2 35 24 0 12
>> D = A./B
D =
0.5000 0.7143 2.6667 Inf 3.0000
>> E = A.\B
E =
2.0000 1.4000 0.3750 0 0.3333
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
>>A=[15876];
>>B=[27302];
>>C=A.*B
C=
23524012
>>D=A./B
D=
0.50000.71432.6667Inf3.0000
>>E=A.\B
E=
2.00001.40000.375000.3333
乘方:.^
Python
>> G = A.^B %数组的乘方
G =
1 78125 512 1 36
>> H = A.^2 %数组与某个确定值的乘方
H =
1 25 64 49 36
>> I = 2.^A %确定值与数组建的乘方
I =
2 32 256 128 64
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
>>G=A.^B%数组的乘方
G=
178125512136
>>H=A.^2%数组与某个确定值的乘方
H=
125644936
>>I=2.^A%确定值与数组建的乘方
I=
23225612864
点积:dot
利用dot函数可进行点积的运算,要求A、B维度相同
Python
>> J = dot(A,B)
J =
73
>> K = sum(A.*B)
K =
73
1
2
3
4
5
6
7
8
9
10
11
>>J=dot(A,B)
J=
73
>>K=sum(A.*B)
K=
73
关系运算:
当两个比较量是标量时,直接比较两个数的大小。若关系成立,则返回的结果为1;否则为0
当两个比较量是维度相等的数组时,逐一比较两个数组相同位置的元素,并分别给出比较结果,比较结果也是相同维度的数组
Python
>> A>B
ans =
0 0 1 1 1
1
2
3
4
5
>>A>B
ans=
00111
逻辑运算:
非零为真,返回1;否则返回0
当两个比较量是维度相等的数组时,逐一比较两个数组相同位置的元素,并分别给出比较结果,比较结果也是相同维度的数组
&、|、~运算法则不变
矩阵操作
1.创建矩阵
除了之前提到过的零阵(zeros)、单位阵(eye)、全1阵(ones)等特殊矩阵之外,MATLAB中还有一些其他指令用于生成实验矩阵:
函数名称
表示意义
company(p)
生成一个特征多项式为p的二维矩阵
hadamard(k)
返回一个阶数为2k的Hadamark矩阵,只有当n能被4整除时Hadamark矩阵才存在
hankel(x)
返回一个由向量x定义的Hankel方阵。该矩阵是对称矩阵,第一列元素为向量x,反三角以下的元素为0
hankel(x,y)
返回一个m*n的Hankel矩阵,其第一列元素为向量x,最后一行为向量y
magic(n)
返回一个n*n的魔方矩阵
pascal(n)
返回一个n*n的Pascal矩阵
rosser
给出Rosser矩阵,这是一个经典对称特征测试问题,大小为8*8
vander(x)
返回一个Vandermonde矩阵
wilkinson(n)
返回一个m*n的Wilkinson特征值测试矩阵
希波尔特(Hilbert)矩阵
希波尔特(Hilbert)矩阵,也称H阵,其元素为H(i,j) = 1/(i+j-1)。即他是一个条件数差的矩阵,常被用来作为实验矩阵
hilb(n):生成一个n*n的H阵
invhilb(n):生成一个n*n的H阵的逆矩阵整数矩阵
Python
>> A = hilb(4)
A =
1.0000 0.5000 0.3333 0.2500
0.5000 0.3333 0.2500 0.2000
0.3333 0.2500 0.2000 0.1667
0.2500 0.2000 0.1667 0.1429
>> B = invhilb(4)
B =
16 -120 240 -140
-120 1200 -2700 1680
240 -2700 6480 -4200
-140 1680 -4200 2800
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
>>A=hilb(4)
A=
1.00000.50000.33330.2500
0.50000.33330.25000.2000
0.33330.25000.20000.1667
0.25000.20000.16670.1429
>>B=invhilb(4)
B=
16-120240-140
-1201200-27001680
240-27006480-4200
-1401680-42002800
可以看出其都是对称矩阵
托普利兹(Toeplitz)矩阵
它由两个向量定义,一个行向量,一个列向量。对称的托普利兹由单一向量来定义。
toeplitz(k,r):生成非对称托普利兹矩阵。第一列为k,第一行为r,其余元素等于左上角元素
topelitz(c):生成堆成托普利兹矩阵
Python
>> A = toeplitz(3:6,3:2:9)
A =
3 5 7 9
4 3 5 7
5 4 3 5
6 5 4 3
>> B = toeplitz(3:6)
B =
3 4 5 6
4 3 4 5
5 4 3 4
6 5 4 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
>>A=toeplitz(3:6,3:2:9)
A=
3579
4357
5435
6543
>>B=toeplitz(3:6)
B=
3456
4345
5434
6543
魔方(magic)矩阵
魔方矩阵中每行、列和两条对角线上的元素和相等。
Python
>> A = magic(3)
A =
8 1 6
3 5 7
4 9 2
1
2
3
4
5
6
7
>>A=magic(3)
A=
816
357
492
帕斯卡(pascal)矩阵
A = pascal(n):返回n阶的对称正定Pascal矩阵,其中元素是由Pascal三角组成的,其逆矩阵的元素都是整数
A = pascal(n,1):返回由下三角的Cholesky因子组成的Pascal矩阵,他是对称的,所以他是自己的逆
A = pascal(n,2):返回pascal(n,2)的转置和交换形式。A是单位矩阵的立方根
Python
>> A = pascal(3)
A =
1 1 1
1 2 3
1 3 6
>> B = pascal(3,1)
B =
1 0 0
1 -1 0
1 -2 1
>> C = pascal(3,2)
C =
1 1 1
-2 -1 0
1 0 0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
>>A=pascal(3)
A=
111
123
136
>>B=pascal(3,1)
B=
100
1-10
1-21
>>C=pascal(3,2)
C=
111
-2-10
100
范德蒙(Vandermonde)矩阵
A = vander(v):生成范德蒙阵,矩阵的列是向量v的幂,即A(i,j) = v(i)^(n-j),其中n = length(v)。
Python
>> A = vander([1 3 5 7])
A =
1 1 1 1
27 9 3 1
125 25 5 1
343 49 7 1
>> B = vander([1;3;5;7])
B =
1 1 1 1
27 9 3 1
125 25 5 1
343 49 7 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
>>A=vander([1357])
A=
1111
27931
1252551
3434971
>>B=vander([1;3;5;7])
B=
1111
27931
1252551
3434971
2.改变矩阵大小
矩阵的合并
矩阵的合并就是把两个及两个以上的矩阵合成一个矩阵
C = [A B] %将两个矩阵列数相加,要求两矩阵行数相等
C = [A; B] %将两个矩阵行数相加,要求两矩阵列数相等
矩阵行列的删除
矩阵行列的删除就是把该行或者该列赋予一个空矩阵”[]”即可。
Python
>> A = magic(3)
A =
8 1 6
3 5 7
4 9 2
>> A(2,:) = []
A =
8 1 6
4 9 2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
>>A=magic(3)
A=
816
357
492
>>A(2,:)=[]
A=
816
492
其中“,:”表示的是整行元素
3.矩阵重构
矩阵重构的两个比较重要的运算是转置和共轭转置。
若矩阵A为实数,则A’与A.’都是求A的转置,且结果相同
若矩阵A为复数,则A’表示求A得共轭转置,A.’表示求A得转置
赞赏作者
喜欢 (2)or分享 (0)
matlab 矩阵逻辑与,MATLAB自学笔记(七):数组运算与矩阵操作相关推荐
- matlab非同秩矩阵相乘_MATLAB自学笔记(八):矩阵元素运算与矩阵运算
一.矩阵元素运算 1.矩阵的加减运算 前提是参与运算的两个或多个矩阵均为m*n矩阵:或者其中一个或多个矩阵为标量 C = A±B:C(m,n) = A(m,n) + B(m,n) C = A±x:C( ...
- 生信自学笔记(五)计分矩阵的实例
氨基酸替换矩阵 PAM 替换矩阵 PAM(Point Accepted Multation) 是基于进化的点突变模型产生的,如果两种氨基酸替换频繁,说明自然界接受这种替换,那么这对氨基酸替换得分就高. ...
- OpenCV图像处理使用笔记(七)——卷积运算原理
前言 1.在图像处理中,特别在深度学习图像处理,最常看到图像卷积操作,那什么是卷积呢,卷积就是两个原函数产生一个新的函数,两个函数之间的这种操作就称着卷积,在图像这里的图像卷积也用输入的图像矩阵与一个 ...
- Matlab App Designer自学笔记(七):对话框的使用(提示对话框、提问对话框、文件对话框)
一."提示"对话框 在"关于"按钮上添加回调: help 可以换成none.error.help.warn任何一个,提示语左边的图标会发生变化. matlab中 ...
- 【台大郭彦甫】Matlab入门教程超详细学习笔记七:数值微积分(附PPT链接)
数值微积分 前言 一.多项式微积分 1. 多项式计算 2. 多项式微分 3. 多项式积分 二.数值微积分 1. 数值微分法 2. 高阶微分法 3. 数值积分法 三.回顾Function Handles ...
- 微信小程序开发自学笔记 —— 七、性能优化
性能优化 启动 在小程序启动时,微信会为小程序展示一个固定的启动界面,界面内包含小程序的图标.名称和加载提示图标.此时,微信会在背后完成几项工作:下载小程序代码包.加载小程序代码包.初始化小程序首页. ...
- Hadoop自学笔记(七)Hadoop环境配置和优化
概览 1. Hadoop Trouble Shooting 查看logs, 存储位置等 2. Hadoop Administration 常见Hadoop管理员面对的问题 3. Hadoop Opti ...
- vue 自学笔记(七) 组件细节问题
前情提要: 这里盘点一下,组件细节的问题 现在我们观察一些用框架开发的网页BiliBili.掘金,会发现很多部分都十分相似或者一模一样,我们甚至可以将其拆分归类.而事实上,页面的确是被一个个组件构成的 ...
- Java学习笔记七——数组工具类Arrays
数组工具类Arrays Java提供的Arrays类里包含的一些static修饰的方法可以直接操作数组.若将里面的方法用熟的话,那开发效率会大大提高.下面介绍其中的方法. List<T> ...
- c语言编程最后j和k,C语言学习笔记:IJK运算,ijk,的,操作
表达式 i < j < k 在C语言中是合法的,但是它不是你所期望的意思.因为 < 运算符是左结合的, 所以这个表达式等价于 (i < j) < k . 换句话说, 表达 ...
最新文章
- Nginx之简介与安装(一)
- TypeScript Type Innference(类型推断)
- 原以为原神是米哈游的极限,看过美术总监的年番,恍然大悟!
- word计算机课教学反思,《WORD》初中信息技术的教学反思
- [Java] 蓝桥杯 BASIC-5 基础练习 查找整数
- ubuntu中的大小写
- TINYBERT: DISTILLING BERT FOR NATURAL LANGUAGE UNDERSTANDING
- win11更新黑屏无法进入系统怎么办 windows11黑屏更新无法进入系统的解决方法
- 载入Haskell的函数
- 全局空间自相关算法:Join Count
- 读《三体》差点污了我的三观
- html背景图片刚刚好铺满,ppt的背景图片怎么设置才能铺满整张又不失真呢? | ppt整套背景图...
- 《幸福来敲门》观后感
- 【历史上的今天】1 月 23 日:现代集成电路雏形;JDK 1.0 发布;数学大师诞生
- 电脑声音出现变声的问题
- herf(超链接、锚链接)
- Crontab定时执行任务
- 网页背景颜色渐变效果
- 互联网突破和 SD-WAN
- mysql事务使用转化_Mysql事务
热门文章
- 9.携程架构实践 --- 网站高可用
- 3.第一本 docker 书 --- docker 网络
- 6. 标准 I/O 库
- 122. PHP 性能问题(3)
- html中表格table的内容居中显示
- 表单从gb2312的页面提交到utf-8页面,或者表单从utf-8的页面提交到gb2312页面的解决办法...
- Python类方法,静态方法
- nginx配置openssl证书
- Android的存储方式
- 【FFMEPG】windows下编译ffmpeg2.5——使用VS2013,ARMLINUX,ANDORID编译ffmpeg