matalb中.*要求数组维度相同,为什么这个可以运行?

A=[1 2 3];

B=[1;2;3];

A.*B

ans =

 1     2     3
 2     4     6
 3     6     9

你的那是matlab的一种规则,可以通过在命令行输入”doc . * "查看,可知:将行和列向量相乘“创建行向量 a 和列向量 b,然后将它们相乘。1×3 行向量和 6×1 列向量结合将生成 6×3 矩阵,其中含有相乘元素的所有组合。”
对于你的A和B,这里可以这样理解:对于A . * B,会自动把A变成[1,2,3;1,2,3;1,2,3]; B变成[1,1,1;2,2,2;3,3,3].相乘结果就是你的结果。

不是要求数据维度相同,而是要求两个.*的数组的维度符合矩阵乘法的规则。
1、当矩阵A的列数(column)等于矩阵B的行数(row)时,A与B可以相乘。
2、乘积C的行数等于矩阵A的行数,C的列数等于B的列数。
3、乘积C的第m行第n列的元素等于矩阵A的第m行的元素与矩阵B的第n列对应元素乘积之和。

如果帮到你,请采纳以鼓励。

点乘( A.*B )表示矩阵A的元素与矩阵B 对应的元素 相乘,构成新的矩阵

你说的那个是 A*B