[初学笔记]矩阵
来源:互联网 发布:在线询问医生软件 编辑:程序博客网 时间:2024/06/12 18:04
1 建立矩阵和引用矩阵
(1)在MATLAB中,创建了一个矩阵输入逗号或空格分隔的数字在每一行元素,并用分号来标记每行末尾。
(2)要引用 mth 行 nth 列的一个元素,我们这样写: a (m,n)
a (2 , 3 )
4 5 6
7 8 9
ans =
(3)引用m列中的所有元素,我们A型(m)。
6
9
(4)让我们创建一个较小的矩阵中的元素,第二和第三列:
>> a (:,2:3 )
a (2:3,:)
5 6
8 9
ans =
7 8 9
(5)以同样的方式,则可以创建一个子矩阵的一个子部分的矩阵。
sa = a(1:3,3:4)
8 9
3 2
(6)可以删除整行或整列的矩阵分配一组空方括号[]该行或列。基本上,[]表示一个空数组。
>> a = [1 2 3 4 5; 6 7 8 9 0; 5 4 3 2 1; 0 9 8 7 6];
a (3,: ) = [ ]
a (:,3 ) = [ ]
6 7 8 9 0
0 9 8 7 6
a =
6 7 9 0
0 9 7 6
>>
a = [1 2 3; 4 5 6 ; 7 8 9 ]
b = a ([2,3,2,3],:)
c = a (:,[2,3,2,3])
d = a (:, [2,1,2,1])
4 5 6
7 8 9
b =
7 8 9
4 5 6
7 8 9
c =
5 6 5 6
8 9 8 9
d =
5 4 5 4
8 7 8 7
a = [1 2 3; 4 5 6 ; 7 8 9 ];
b = [4 5 6 ; 7 8 9 ; 1 2 3 ];
c = a + b
d = a - b
11 13 15
8 10 12
d =
-3 -3 -3
6 6 6
(2)矩阵的除法
必须要有相同的行数和列数
Matlab中有两种矩阵除法符号:“\”即左除和“/”即右除.如果A矩阵是非奇异方阵,则A\B是A的逆矩阵乘B,即inv(A)*B;而B/A是B乘A的逆矩阵,即B*inv(A).具体计算时可不用逆矩阵而直接计算.
一般情况下,x=a\b是方程a*x =b的解,而x=b/a是方程x*a=b的解。
两种方法的计算方式是不一样的,但是结果是一样的
>>
a = [1 2 ; 3 4 ];
b = [5 6 ; 7 8 ];
R = b/a
L = a\b
r = b * inv (a)
l = inv(a) * b
-2.0000 3.0000
L =
4 5
r =
-2.0000 3.0000
l =
4.0000 5.0000
当矩阵和向量相除时,就要留意是行向量还是列向量了,那么用的左除和右除也不一样
>> a = [1 2 ; 3 4 ];
b = [ 5 , 6];
c = [ 5 ; 6 ];
R = b/a
b = [4 5 6 ; 7 8 9 ; 1 2 3 ];
b.\a
0.5714 0.6250 0.6667
7.0000 4.0000 3.0000
1.7500 1.6000 1.5000
0.1429 0.2500 0.3333
0.5714 0.6250 0.6667
7.0000 4.0000 3.0000
1.7500 1.6000 1.5000
0.1429 0.2500 0.3333
matlab中不同行列数矩阵除法问题
假如矩阵A=[a,b,c],B如图中所示,我想用A中的第一个元素a除以矩阵B中的第一行每个元素,用b除以B中第二行每个元素,c除以B中第三行每个元素,依次类推.请问高手们,把矩阵A和B做如何变换,能保证得到图中矩阵C.
说明:前提是要保证矩阵A的元素个数和矩阵B的行数相等,而矩阵B的列数程序已经考虑到了,可以是任意列数.
B = [1 2 3 1; 3 4 1 1; 4 2 1 1];
[X, Y] = meshgrid(B(1, :), A); % B(1, :)主要是为了获取B的列数
C = Y ./ B
结果:
C =
72 36 24 72
12 9 36 36
3 6 12 12
b = 5 ;
c = a + b
d = a - b
e = a * b
f = a/b
q = a\b
9 10 11
12 13 14
d =
-1 0 1
2 3 4
e =
20 25 30
35 40 45
f =
0.8000 1.0000 1.2000
1.4000 1.6000 1.8000
Matrix dimensions must agree.
b = [21 22 23;24 25 26; 27 28 29];
a = b'
22 25 28
23 26 29
MATLAB允许两种类型的串联:
水平串联
垂直串联
当连接两个矩阵那些使用逗号分开,他们只是附加水平。它被称为水平串联。
另外,如果连接两个矩阵那些使用分号分开,他们被追加垂直。它被称为垂直串连。
>> a = [1 2 3; 4 5 6 ; 7 8 9 ];
b = [21 22 23;24 25 26; 27 28 29];
c = [1 2 ; 4 5 ; 6 7 ];
d = [1 2 ; 4 5];
e = [a,b]
f = [a;b]
g = [a,c]
h = [a d]
4 5 6 24 25 26
7 8 9 27 28 29
f =
4 5 6
7 8 9
21 22 23
24 25 26
27 28 29
g =
4 5 6 4 5
7 8 9 6 7
Dimensions of matrices being concatenated are
not consistent.
在矩阵乘法中,具有相应的列中的第二矩阵乘以第一矩阵中的行的元素。
第(i,j)个位置中的每个元素,将所得的矩阵C,是在第i行的第一矩阵具有第二矩阵的第j列中的相应元素的产品的元素的总和。
在 MATLAB中,矩阵乘法使用*运算符。
b = [21 22 23;24 25 26; 27 28 29];
c = [1 2 ; 4 5 ; 6 7 ];
d = a * b
e = a * c
366 381 396
582 606 630
e =
60 75
93 117
可以实现a.*b=[a1*b1;a2*b2;a3*b3;a4*b4]
b = [21 22 23];
b.*a
- [初学笔记]矩阵
- [初学笔记]矩阵常用函数
- [初学笔记]建立向量和矩阵,向量 的知识
- 初学笔记
- 初学笔记
- 802.11 初学笔记
- Java初学笔记
- Java数据结构初学笔记
- Ror初学笔记
- mysql初学笔记
- 初学汇编之笔记!
- 初学orcale笔记
- orge 初学笔记一
- C++初学笔记
- ajax初学笔记
- 初学unix命令笔记
- Oracle-初学笔记
- JavaScrip 初学笔记
- url问题
- 阿里云视频服务负载均衡架构
- [BZOJ2111][ZJOI2010]排列计数(DP+组合数)
- bzoj 2916: [Poi1997]Monochromatic Triangles(推理)
- 内核同步方法
- [初学笔记]矩阵
- STVP STM8 COSMIC C编译器在WIN10上的安装使用(附安装与破解软件)
- SessionState的几种设置
- 汉字Unicode解码
- leetcode 第四题:动态规划思想的应用
- unity3d发布EXE去掉边框
- 从 Cryptoeconomics 剖析区块链背后机制
- Android开机图片替换
- JAVA实现远程控制(JAVA in RemoteControl)