matlab 中的a.*b和a*b有什么区别

发布网友 发布时间:2022-03-25 14:02

我来回答

10个回答

热心网友 时间:2022-03-25 15:31

区别:

a.*b前面是点乘,要求两个变量的元素个数相等,排列方式相同,如都是行矢量或都是列矢量或都矩阵。a*b后者是矩阵乘法,要求内维相同。

用实例来说明matlab中这两种乘法C=A.B,C=AB的区别

1、A矩阵

2、B矩阵

3、C=A.*B

4、C=A*B

扩展资料:

提供了两种运算规则:

1)A.B

进行此运算时必须保证矩阵A和B的形状一样,即同为mn矩阵。运算结果为对应位置的元素相乘组成同样形状(mn)的矩阵,即C=AijBij;

2)AB

此运算与线性代数里的矩阵相乘计算方法一样,不需要A、B形状一样,但要满足A的列数与B的行数一样(如:A为mn矩阵,B为n*p矩阵)。

热心网友 时间:2022-03-25 16:49

一、名称不同:

1、a.*b为“点乘”。

2、a*b为“位乘“。

二、用法不同:

1、a.*b是两个矩阵对应元素相乘。

2、a*b就是线性代数里面的矩阵相乘。

三、要求不同:

1、a.*b要求两个变量的元素个数相等,排列方式相同。

2、a*b要求内维相同。

参考资料:

百度百科-MATLAB

热心网友 时间:2022-03-25 18:24

a*b就是线性代数中的矩阵相乘,a的列数必须等于b的行数。
而a.*b是对应元素相乘,两个矩阵大小不一定相等。比如a是1*2的向量,b是2*4的矩阵,乘出来结果是一个2*4的矩阵。
刚刚bug卡在这。。。才发现MATLAB里.*和*不一样。。。

热心网友 时间:2022-03-25 20:15

加点那个是针对数的运算 (直接把对应元素相乘即可)
没加点的那个要杨哥按照高数中矩阵的运算法则进行运算
举例
a=[1,2;3,0] b=[2,3;1,1]
a.*b=[1x2,2x3;3x1,0x1]=[2,6;3,0]
a*b=[1x2+2x1,1x3+2x1;3x2+0x1,3x3+0x1]=[4,5;6,9]

热心网友 时间:2022-03-25 22:23

a.*b是将a矩阵与b矩阵中相同位置的元素相乘,两个矩阵的大小必须相等
a*b就是矩阵运算中的矩阵相乘
如果a和b都是一个数,运算结果相同

热心网友 时间:2022-03-26 00:48

前面是点乘,要求两个变量的元素个数相等,排列方式相同,如都是行矢量或都是列矢量或都矩阵。后者是矩阵乘法,要求内维相同,如a是?*2个元素,b则是2*?个元素,如不是这样,就出错。如:a=1:5;b=6:10;c=a.*b,d=a*b'
结果是:
c =
6 14 24 36 50
d =
130

热心网友 时间:2022-03-26 03:29

a .* b 是元素乘法,a 和 b 的维度要一样。
a * b 是矩阵乘法,a 的列数要和 b 的行数一样。

热心网友 时间:2022-03-26 06:27

% 列举下列几种可能,希望能自己总结下,加深映像
a = 2; b = 3;
a.*b = 6;
a*b = 6;

%
a = [2 3]; b = 3;
a.*b = [6 9];
a*b = [6 9];

%
a = [2 3]; b = [4 7];
a.*b = [8 21];
a*b %错误
a*b' = 29;

%
a = [1 2;3 4]; b =[2 3;4 7];
a.*b = [2 6;12 28];
a*b = [10 37;22 37];

热心网友 时间:2022-03-26 09:42

>> a=[1 2;3 4];
>> b=[1 2;3 4];
>> a/b

ans =

1 0
0 1
>> a./b

ans =

1 1
1 1
a/b相当于a乘b的逆
a./b是a的每个元素与b的每个元素对应相除
>> a=[1 2 3 4 5];
>> b=3;
>> a./b
>> a/b
这种情况下,结果就是一样的,自己体会下

热心网友 时间:2022-03-26 13:13

a * b means matrix multiply

a .* b means pixel by pixel multiply

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com