矩阵的乘法和点乘

本文详细介绍了矩阵乘法的基本原理,包括矩阵相乘的条件、运算规则及如何使用MATLAB进行矩阵运算的实例展示,并且还解释了矩阵点积的概念。

矩阵的乘法就是矩阵a的第一行乘以矩阵b的第一列,各个元素对应相乘然后求和作为第一元素的值。
矩阵只有当左边矩阵的列数等于右边矩阵的行数时,它们才可以相乘,乘积矩阵的行数等于左边矩阵的行数,乘积矩阵的列数等于右边矩阵的列数

MATLAB仿真

a = 
     1     0     2
    -1     3     1

b = 
     3     1
     2     1
     1     0

c = 
     5     1
     4     2

MATLAB代码:

a=[1 0 2;-1 3 1];
b=[3 1;2 1;1 0];
c=a*b;
fprintf('\na = \n');
disp(a);
fprintf('\nb = \n');
disp(b);
fprintf('\nc = \n');
disp(c);

矩阵的点积

就是矩阵各个对应元素相乘, 这个时候要求两个矩阵必须同样大小

a = 
     1     0 
    -1     3 

b = 
     3     1
     2     1


c =  3     0

     -2    3

### 矩阵乘法的基本概念 在 MATLAB 中,矩阵乘法是两种不同的运算方式。矩阵乘法使用的是 `*` 运算符,它遵循线性代数中的矩阵乘法规则,即第一个矩阵的列数必须与第二个矩阵的行数相匹配[^3]。而使用的是 `.*` 运算符,它执行的是两个矩阵对应元素之间的乘法,因此两个矩阵的维度必须完全相同[^1]。 ### 矩阵乘法的特 当使用 `*` 进行矩阵乘法时,结果矩阵中的每个元素都是通过计算第一个矩阵的一行与第二个矩阵的一列相应元素的积之得到的。例如,如果有一个矩阵 A 一个矩阵 B,它们的大小分别为 $m \times n$ $n \times p$,那么它们的积 C 将是一个 $m \times p$ 的矩阵,其中每个元素 $c_{ij}$ 可以表示为: $$ c_{ij} = \sum_{k=1}^{n} a_{ik}b_{kj} $$ 这种运算通常用于解决线性方程组、变换投影等问题。 ### 的特 另一方面, `.*` 是一种逐元素的乘法操作,这意味着两个矩阵中相同位置的元素会被相。例如,如果有两个同样大小的矩阵 A B,那么它们的结果 C 也是一个同样大小的矩阵,其中每个元素 $c_{ij}$ 是 A B 在该位置上的元素积: $$ c_{ij} = a_{ij} \cdot b_{ij} $$ 这种运算常用于图像处理、信号处理等领域,特别是在需要对两个相同大小的数据集进行逐元素比较或组合的情况下。 ### 使用示例 为了更好地理解这两种运算的区别,我们可以看几个具体的例子。 假设我们有两个矩阵 A B: ```matlab A = [1 3; 2 4]; B = [3 0; 1 5]; ``` 对于矩阵乘法: ```matlab C = A * B; % 结果将是: % C = % 6 15 % 10 20 ``` 而对于: ```matlab D = A .* B; % 结果将是: % D = % 3 0 % 2 20 ``` 可以看到,矩阵乘法的结果与的结果完全不同,这是因为它们代表了不同类型的数学运算。 ### 总结 总结起来,矩阵乘法 `*` 遵循的是线性代数的规则,适用于那些需要将一个矩阵的作用施加于另一个矩阵的情况;而 `.*` 则是一种简单的逐元素乘法,适用于两个矩阵具有相同的尺寸并且希望进行逐元素操作的情形。了解这两者的区别有助于正确地应用在实际的问题求解过程中。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值