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

2024-11-04 10:32:53
推荐回答(5个)
回答(1):

区别:

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矩阵)。

回答(2):

一、名称不同:

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

2、a*b为“位乘“。

二、用法不同:

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

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

三、要求不同:

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

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

参考资料:

百度百科-MATLAB

回答(3):

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

回答(4):

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

回答(5):

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