【数理知识】矩阵普通乘积,哈达玛积,克罗内克积,点乘,点积,叉乘,matlab代码实现

这篇具有很好参考价值的文章主要介绍了【数理知识】矩阵普通乘积,哈达玛积,克罗内克积,点乘,点积,叉乘,matlab代码实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

序号 内容
1 【数理知识】向量数乘,内积,外积,matlab代码实现
2 【数理知识】矩阵普通乘积,哈达玛积,克罗内克积,点乘,点积,叉乘,matlab代码实现

首先介绍矩阵

1. 矩阵基本形式

在数学中,矩阵是一个按照长方阵列排列的复数或实数集合。由 m × n m \times n m×n个数 a i j a_{ij} aij 排成的 m m m n n n 列的数表称为 m m m n n n 列的矩阵,简称 m × n m \times n m×n 矩阵。记作:

A = [ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ a m 1 a m 2 ⋯ a m n ] A = \left[\begin{matrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \\ \end{matrix}\right] A= a11a21am1a12a22am2a1na2namn

2. 矩阵基本运算 - 普通乘积,matmul product

矩阵相乘最重要的方法是一般矩阵乘积。它只有在第一个矩阵的列数(column)和第二个矩阵的行数(row)相同时才有意义。即线性代数学学的,左行乘以右列。

  • 左边矩阵的列数必须与右边矩阵的行数相等
  • 不满足交换律,即 A B ≠ B A ( B A 存在 ) AB \ne BA (BA 存在) AB=BA(BA存在)

A = [ a 11 a 12 a 13 a 21 a 22 a 23 ] 2 × 3 , B = [ b 11 b 12 b 13 b 14 b 21 b 22 b 23 b 24 b 31 b 32 b 33 b 34 ] 3 × 4 A = \left[\begin{matrix} \red{a_{11}} & \red{a_{12}} & \red{a_{13}} \\ a_{21} & a_{22} & a_{23} \\ \end{matrix}\right]_{\green{2 \times 3}}, \quad B = \left[\begin{matrix} \blue{b_{11}} & b_{12} & b_{13} & b_{14} \\ \blue{b_{21}} & b_{22} & b_{23} & b_{24} \\ \blue{b_{31}} & b_{32} & b_{33} & b_{34} \\ \end{matrix}\right]_{\green{3 \times 4}} A=[a11a21a12a22a13a23]2×3,B= b11b21b31b12b22b32b13b23b33b14b24b34 3×4

C = A 2 × 3 B 3 × 4 = C 2 × 4 = [ a 11 b 11 + a 12 b 21 + a 13 b 31 a 11 b 12 + a 12 b 22 + a 13 b 32 a 11 b 13 + a 12 b 23 + a 13 b 33 a 11 b 14 + a 12 b 24 + a 13 b 34 a 21 b 11 + a 22 b 21 + a 23 b 31 a 21 b 12 + a 22 b 22 + a 23 b 32 a 21 b 13 + a 22 b 23 + a 23 b 33 a 21 b 14 + a 22 b 24 + a 23 b 34 ] 2 × 4 \begin{aligned} C &= A_{\green{2 \times 3}} B_{\green{3 \times 4}} = C_{\green{2 \times 4}} \\ &=\left[\begin{matrix} \red{a_{11}} \blue{b_{11}} + \red{a_{12}} \blue{b_{21}} + \red{a_{13}} \blue{b_{31}} & \red{a_{11}} b_{12} + \red{a_{12}} b_{22} + \red{a_{13}} b_{32} & \red{a_{11}} b_{13} + \red{a_{12}} b_{23} + \red{a_{13}} b_{33} & \red{a_{11}} b_{14} + \red{a_{12}} b_{24} + \red{a_{13}} b_{34} \\ a_{21} \blue{b_{11}} + a_{22} \blue{b_{21}} + a_{23} \blue{b_{31}} & a_{21} b_{12} + a_{22} b_{22} + a_{23} b_{32} & a_{21} b_{13} + a_{22} b_{23} + a_{23} b_{33} & a_{21} b_{14} + a_{22} b_{24} + a_{23} b_{34} \\ \end{matrix}\right]_{\green{2 \times 4}} \end{aligned} C=A2×3B3×4=C2×4=[a11b11+a12b21+a13b31a21b11+a22b21+a23b31a11b12+a12b22+a13b32a21b12+a22b22+a23b32a11b13+a12b23+a13b33a21b13+a22b23+a23b33a11b14+a12b24+a13b34a21b14+a22b24+a23b34]2×4

A = [1  2  3; 
	 4  5  6];
B = [1  2  3  4; 
	 5  6  7  8; 
	 9 10 11 12];

Matlab语法:C = A * B

>> C = A * B
ans =
    38    44    50    56
    83    98   113   128

>> A.*B
对于此运算,数组的大小不兼容。

>> dot(A, B)
错误使用 dot
A 和 B 的大小必须相同。
 
>> cross(A, B)
错误使用 cross
A 和 B 的大小必须相同。

3. 矩阵基本运算 - 哈达玛积 Hadamard product

当矩阵 A A A 和矩阵 B B B 的维度相同时,矩阵点乘即为哈达玛积(Hadamard Product/Point-wise Product/Element-wise Product/Element-wise Multiplication)

  • 哈达玛积其元素定义为两个矩阵对应元素的乘积
  • 矩阵各个对应元素相乘, 这个时候要求两个矩阵必须同样大小

A = [ a 11 a 12 a 13 a 21 a 22 a 23 a 31 a 32 a 33 ] 3 × 3 , B = [ b 11 b 12 b 13 b 21 b 22 b 23 b 31 b 32 b 33 ] 3 × 3 A = \left[\begin{matrix} \red{a_{11}} & \red{a_{12}} & \red{a_{13}} \\ a_{21} & a_{22} & a_{23} \\ a_{31} & a_{32} & a_{33} \\ \end{matrix}\right]_{\green{3 \times 3}}, \quad B = \left[\begin{matrix} \blue{b_{11}} & b_{12} & b_{13} \\ \blue{b_{21}} & b_{22} & b_{23} \\ \blue{b_{31}} & b_{32} & b_{33} \\ \end{matrix}\right]_{\green{3 \times 3}} A= a11a21a31a12a22a32a13a23a33 3×3,B= b11b21b31b12b22b32b13b23b33 3×3

C = A 3 × 3 B 3 × 3 = C 3 × 3 = [ a 11 b 11 a 12 b 12 a 13 b 13 a 21 b 21 a 22 b 22 a 23 b 23 a 31 b 31 a 32 b 32 a 33 b 33 ] 3 × 3 \begin{aligned} C &= A_{\green{3 \times 3}} B_{\green{3 \times 3}} = C_{\green{3 \times 3}} \\ &=\left[\begin{matrix} \red{a_{11}} \blue{b_{11}} & \red{a_{12}} b_{12} & \red{a_{13}} b_{13} \\ a_{21} \blue{b_{21}} & a_{22} b_{22} & a_{23} b_{23} \\ a_{31} \blue{b_{31}} & a_{32} b_{32} & a_{33} b_{33} \\ \end{matrix}\right]_{\green{3 \times 3}} \end{aligned} C=A3×3B3×3=C3×3= a11b11a21b21a31b31a12b12a22b22a32b32a13b13a23b23a33b33 3×3

A = [1  2  3; 
	 4  5  6;
     7  8  9];
B = [1  2  3; 
	 4  5  6;
     7  8  9];

Matlab语法:C = A .* B

>> C = A .* B
C =
     1     4     9
    16    25    36
    49    64    81

>> C = A * B
C =
    30    36    42
    66    81    96
   102   126   150

>> C = dot(A, B)
C =
    66    93   126
    
>> C = cross(A, B)
C =
     0     0     0
     0     0     0
     0     0     0

4. 矩阵基本运算 - 克罗内克积,Kronecker product

A = [ a 11 a 12 a 13 a 21 a 22 a 23 ] 2 × 3 , B = [ b 11 b 12 b 21 b 22 b 31 b 32 ] 3 × 2 A = \left[\begin{matrix} \red{a_{11}} & \red{a_{12}} & \red{a_{13}} \\ a_{21} & a_{22} & a_{23} \\ \end{matrix}\right]_{\green{2 \times 3}}, \quad B = \left[\begin{matrix} \blue{b_{11}} & b_{12} \\ \blue{b_{21}} & b_{22} \\ \blue{b_{31}} & b_{32} \\ \end{matrix}\right]_{\green{3 \times 2}} A=[a11a21a12a22a13a23]2×3,B= b11b21b31b12b22b32 3×2

C = A 2 × 3 B 3 × 2 = C 6 × 6 = [ a 11 b 11 a 11 b 12 a 12 b 11 a 12 b 12 a 13 b 11 a 13 b 12 a 11 b 21 a 11 b 22 a 12 b 21 a 12 b 22 a 13 b 21 a 13 b 22 a 11 b 31 a 11 b 32 a 12 b 31 a 12 b 32 a 13 b 31 a 13 b 32 a 21 b 11 a 21 b 12 a 22 b 11 a 22 b 12 a 23 b 11 a 23 b 12 a 21 b 21 a 21 b 22 a 22 b 21 a 22 b 22 a 23 b 21 a 23 b 22 a 21 b 31 a 21 b 32 a 22 b 31 a 22 b 32 a 23 b 31 a 23 b 32 ] 6 × 6 \begin{aligned} C &= A_{\green{2 \times 3}} B_{\green{3 \times 2}} = C_{\green{6 \times 6}} \\ &=\left[\begin{matrix} \red{a_{11}} \blue{b_{11}} & \red{a_{11}} b_{12} & \red{a_{12}} \blue{b_{11}} & \red{a_{12}} b_{12} & \red{a_{13}} \blue{b_{11}} & \red{a_{13}} b_{12} \\ \red{a_{11}} \blue{b_{21}} & \red{a_{11}} b_{22} & \red{a_{12}} \blue{b_{21}} & \red{a_{12}} b_{22} & \red{a_{13}} \blue{b_{21}} & \red{a_{13}} b_{22} \\ \red{a_{11}} \blue{b_{31}} & \red{a_{11}} b_{32} & \red{a_{12}} \blue{b_{31}} & \red{a_{12}} b_{32} & \red{a_{13}} \blue{b_{31}} & \red{a_{13}} b_{32} \\ a_{21} \blue{b_{11}} & a_{21} b_{12} & a_{22} \blue{b_{11}} & a_{22} b_{12} & a_{23} \blue{b_{11}} & a_{23} b_{12} \\ a_{21} \blue{b_{21}} & a_{21} b_{22} & a_{22} \blue{b_{21}} & a_{22} b_{22} & a_{23} \blue{b_{21}} & a_{23} b_{22} \\ a_{21} \blue{b_{31}} & a_{21} b_{32} & a_{22} \blue{b_{31}} & a_{22} b_{32} & a_{23} \blue{b_{31}} & a_{23} b_{32} \\ \end{matrix}\right]_{\green{6 \times 6}} \end{aligned} C=A2×3B3×2=C6×6= a11b11a11b21a11b31a21b11a21b21a21b31a11b12a11b22a11b32a21b12a21b22a21b32a12b11a12b21a12b31a22b11a22b21a22b31a12b12a12b22a12b32a22b12a22b22a22b32a13b11a13b21a13b31a23b11a23b21a23b31a13b12a13b22a13b32a23b12a23b22a23b32 6×6

A = [1  2  3; 
	 4  5  6];
B = [1  2; 
	 3  4;
     5  6];

Matlab语法:C = kron(A, B)

>> C = kron(A, B)
C =
     1     2     2     4     3     6
     3     4     6     8     9    12
     5     6    10    12    15    18
     4     8     5    10     6    12
    12    16    15    20    18    24
    20    24    25    30    30    36
    
>> C = A * B
C =
    22    28
    49    64

>> C = dot(A, B)
错误使用 dot
A 和 B 的大小必须相同。

>> C = cross(A, B)
错误使用 cross
A 和 B 的大小必须相同。

5. Matlab矩阵运算 - 普通乘积 *

这个比较简单,不再过多解释。


6. Matlab矩阵运算 - 点乘 .*

A = [ a 11 a 12 a 21 a 22 a 31 a 32 a 41 a 42 ] 4 × 2 , B = [ b 11 b 21 b 31 b 41 ] 4 × 1 A = \left[\begin{matrix} \red{a_{11}} & \red{a_{12}} \\ a_{21} & a_{22} \\ a_{31} & a_{32} \\ a_{41} & a_{42} \\ \end{matrix}\right]_{\green{4 \times 2}}, \quad B = \left[\begin{matrix} \blue{b_{11}} \\ \blue{b_{21}} \\ \blue{b_{31}} \\ \blue{b_{41}} \\ \end{matrix}\right]_{\green{4 \times 1}} A= a11a21a31a41a12a22a32a42 4×2,B= b11b21b31b41 4×1

C = A 4 × 2 ⊙ B 4 × 1 = C 4 × 2 = [ a 11 b 11 a 12 b 11 a 21 b 21 a 22 b 21 a 31 b 31 a 32 b 31 a 41 b 41 a 42 b 41 ] 4 × 2 \begin{aligned} C &= A_{\green{4 \times 2}} \odot B_{\green{4 \times 1}} = C_{\green{4 \times 2}} \\ &=\left[\begin{matrix} \red{a_{11}} \blue{b_{11}} & \red{a_{12}} \blue{b_{11}} \\ a_{21} \blue{b_{21}} & a_{22} \blue{b_{21}} \\ a_{31} \blue{b_{31}} & a_{32} \blue{b_{31}} \\ a_{41} \blue{b_{41}} & a_{42} \blue{b_{41}} \\ \end{matrix}\right]_{\green{4 \times 2}} \end{aligned} C=A4×2B4×1=C4×2= a11b11a21b21a31b31a41b41a12b11a22b21a32b31a42b41 4×2

A = [1  2; 
	 3  4;
     5  6;
     7  8];
B = [1; 
	 2;
     3;
     4];
>> C = A .* B
C =
     1     2
     6     8
    15    18
    28    32

A = [ a 11 a 21 ] 2 × 1 , B = [ b 11 b 12 b 13 ] 1 × 3 A = \left[\begin{matrix} \red{a_{11}} \\ a_{21} \\ \end{matrix}\right]_{\green{2 \times 1}}, \quad B = \left[\begin{matrix} \blue{b_{11}} & b_{12} & b_{13} \\ \end{matrix}\right]_{\green{1 \times 3}} A=[a11a21]2×1,B=[b11b12b13]1×3

C = A 2 × 1 ⊙ B 1 × 3 = C 2 × 3 = [ a 11 b 11 a 11 b 12 a 11 b 13 a 21 b 11 a 21 b 12 a 21 b 13 ] 2 × 3 \begin{aligned} C &= A_{\green{2 \times 1}} \odot B_{\green{1 \times 3}} = C_{\green{2 \times 3}} \\ &=\left[\begin{matrix} \red{a_{11}} \blue{b_{11}} & \red{a_{11}} \blue{b_{12}} & \red{a_{11}} \blue{b_{13}} \\ a_{21} \blue{b_{11}} & a_{21} b_{12} & a_{21} b_{13} \\ \end{matrix}\right]_{\green{2 \times 3}} \end{aligned} C=A2×1B1×3=C2×3=[a11b11a21b11a11b12a21b12a11b13a21b13]2×3

A = [1;
	 2];
B = [1  2  3];
>> C = A .* B
C =
     1     2     3
     2     4     6

A = [ a 11 a 21 ] 2 × 1 , B = [ b 11 b 12 b 13 b 21 b 22 b 23 ] 2 × 3 A = \left[\begin{matrix} \red{a_{11}} \\ a_{21} \\ \end{matrix}\right]_{\green{2 \times 1}}, \quad B = \left[\begin{matrix} \blue{b_{11}} & b_{12} & b_{13} \\ \blue{b_{21}} & b_{22} & b_{23} \\ \end{matrix}\right]_{\green{2 \times 3}} A=[a11a21]2×1,B=[b11b21b12b22b13b23]2×3

C = A 2 × 1 ⊙ B 2 × 3 = C 2 × 3 = [ a 11 b 11 a 11 b 12 a 11 b 13 a 21 b 12 a 21 b 22 a 21 b 23 ] 2 × 3 \begin{aligned} C &= A_{\green{2 \times 1}} \odot B_{\green{2 \times 3}} = C_{\green{2 \times 3}} \\ &=\left[\begin{matrix} \red{a_{11}} \blue{b_{11}} & \red{a_{11}} \blue{b_{12}} & \red{a_{11}} \blue{b_{13}} \\ a_{21} \blue{b_{12}} & a_{21} b_{22} & a_{21} b_{23} \\ \end{matrix}\right]_{\green{2 \times 3}} \end{aligned} C=A2×1B2×3=C2×3=[a11b11a21b12a11b12a21b22a11b13a21b23]2×3

A = [1;
	 2];
B = [1  2  3;
	 4  5  6];
>> C = A .* B
C =
     1     2     3
     8    10    12

7. Matlab矩阵运算 - 点积 dot()

C = dot(A,B) returns the scalar dot product of A and B.

  • If A and B are vectors, then they must have the same length.
  • If A and B are matrices or multidimensional arrays, then they must have the same size. In this case, the dot function treats A and B as collections of vectors. The function calculates the dot product of corresponding vectors along the first array dimension whose size does not equal 1.

C = dot(A,B,dim) evaluates the dot product of A and B along dimension, dim. The dim input is a positive integer scalar.


8. Matlab矩阵运算 - 叉乘 cross()

C = cross(A,B) returns the cross product of A and B.

  • If A and B are vectors, then they must have a length of 3.
  • If A and B are matrices or multidimensional arrays, then they must have the same size. In this case, the cross function treats A and B as collections of three-element vectors. The function calculates the cross product of corresponding vectors along the first array dimension whose size equals 3.

C = cross(A,B,dim) evaluates the cross product of arrays A and B along dimension, dim. A and B must have the same size, and both size(A,dim) and size(B,dim) must be 3. The dim input is a positive integer scalar.文章来源地址https://www.toymoban.com/news/detail-443452.html


Ref

  1. 矩阵和向量的点乘与叉乘
  2. 几种矩阵乘法总结
  3. 矩阵乘法,还可以这样算?
  4. 向量和矩阵的点乘和叉乘

到了这里,关于【数理知识】矩阵普通乘积,哈达玛积,克罗内克积,点乘,点积,叉乘,matlab代码实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【数理知识】三维空间旋转矩阵的欧拉角表示法,四元数表示法,两者之间的转换,Matlab 代码实现

    序号 内容 1 【数理知识】自由度 degree of freedom 及自由度的计算方法 2 【数理知识】刚体 rigid body 及刚体的运动 3 【数理知识】刚体基本运动,平动,转动 4 【数理知识】向量数乘,内积,外积,matlab代码实现 5 【数理知识】最小二乘法,从线性回归出发,数值举例并用最小

    2024年02月12日
    浏览(50)
  • 矩阵和向量的点乘与叉乘

    python语言 (9条消息) 矩阵和向量的点乘与叉乘_矩阵点乘_鸣谦12的博客-CSDN博客 一、矩阵 1)矩阵点乘——各个矩阵对应元素相乘 矩阵点乘中, 点乘对象的行数必须相等,且前者的列数必须与后者相等,或为1 。   numpy库中可使用运算符 * 或 multiply 函数计算。 2)矩阵叉乘——

    2024年01月25日
    浏览(39)
  • C语言矩阵乘积(ZZULIOJ1127:矩阵乘积)

    题目描述 计算两个矩阵A和B的乘积。 输入第一行三个正整数m、p和n,0=m,n,p=10,表示矩阵A是m行p列,矩阵B是p行n列; 接下来的m行是矩阵A的内容,每行p个整数,用空格隔开;最后的p行是矩阵B的内容,每行n个整数,用空格隔开。 输出: 输出乘积矩阵,输出占m行,每行n个数据

    2024年02月05日
    浏览(40)
  • 矩阵的点乘与叉乘的区别

    矩阵点乘与叉乘是两种不同的运算。 矩阵点乘(也称为内积或数量积)是指两个相同维数的矩阵对应位置上元素的乘积之和。结果是一个标量(即一个实数或复数)。 矩阵叉乘(也称为向量积或外积)只能针对某些特定的对象进行,例如两个三维向量的叉乘。它的结果是一

    2023年04月15日
    浏览(50)
  • 线性代数的学习和整理22:矩阵的点乘(草稿)

    4  矩阵乘法 A,B两个同阶同秩N阵,看上去结构一样,但两厢相乘,在做在右,地位差别巨大。 在左,你就是基,是空间的根本,是坐标系,是往哪去、能到哪的定海神针,是如来佛手;在右,你就只是乾坤已定后数量的选择,你是翻十个跟头,还是翻十一个(都出不了如来佛

    2024年02月09日
    浏览(52)
  • C++利用类实现矩阵的数乘、乘法以及点乘

        ----------------------------------矩阵的数乘、乘法、点乘---------------------------------------*    *-description:用户选择运算方式后输入矩阵的规模并赋值,随即进行矩阵相关运算      *- author:Luo                                                                             

    2024年02月06日
    浏览(46)
  • matlab中矩阵点乘和乘的区别(超级简单)

    前提条件 :满足矩阵相乘的规则,即 前矩阵的列数等于后矩阵的行数 。 前提条件 :满足矩阵点乘的规则,即 前后矩阵维度相同 。 3.1 矩阵相乘 Example1: 这时如果用点乘就会报错 Example2: A 矩阵的列数等于B矩阵的行数 3.2 矩阵点乘 A , B 两个矩阵的维度都是相同的

    2023年04月10日
    浏览(37)
  • 【理解线性代数】(四)从向量组点乘到矩阵相乘

    工业生产的发展趋势总是从单件生产到批量生产。科学技术研究也是一样,总是从简单计算到复合运算、批量运算。批量意味着生产能力、处理能力的提升。计算机从16位发展到64位,从单核发展到多核;计算机从CPU处理数据发展到GPU处理数据;大数据、人工智能领域的大模型

    2024年02月09日
    浏览(40)
  • MATLAB中如何实现n个矩阵的点乘或相加

      - 如果你的矩阵都是同样的大小,你可以将它们存储在一个三维数组中,然后使用sum函数沿着第三个维度求和。例如,如果你有三个2×2的矩阵A、B和C,你可以这样做:   ```markdown M = cat(3,A,B,C); % 将A、B、C沿着第三个维度拼接成一个2×2×3的数组 S = sum(M,3); % 沿着第三个维度求

    2024年02月06日
    浏览(36)
  • 矩阵乘积的秩定理

    两个矩阵乘积的秩不大于其每个因子的秩;特别的当其中一个因子可逆时,那么乘积的秩等于另一个因子的秩。 假设 A是一个m x n的矩阵,B是一个n x s的矩阵, r是A的秩。若 s r slt r s r ,自然秩 A B ≤ 秩 A AB le 秩A A B ≤ 秩 A . 所以主要讨论 s ≥ r sge r s ≥ r , 通过对A进行初等

    2024年02月05日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包