matlab 中在一个语句中连着出现矩阵相乘和矩阵点乘,请问是按先后顺序来计算的还是有特殊优先级的???

发布网友 发布时间:2022-04-26 15:34

我来回答

3个回答

热心网友 时间:2023-10-12 04:05

矩阵的相乘是指的A(i,k)*B(k,j) = C(i,j) 对应于高等代数里面规定的矩阵的乘积。
而点乘是指的对应的元素的乘积(维数必须完全相等)
//////这两种乘积在matlab里面 ‘优先级是相同的’
也就是说按先后顺序来计算,要想改变顺序或改变运算可以用添加括号的方式来实现。追问刚开始我也觉得是同级的,但昨天看了一个程序,似乎不是这样的,大哥你这个确定吗?可能是他们的程序有问题。呵呵

追答处于同级的运算符优先级是相同的/
优先级从低到高:
1.先决或(||);
2.先决与(&&);
3.逻辑或(|);
4.逻辑与(&);
5.等于类(,>=,==,~=);
6.冒号运算(:);7.加减(+,-);
8.乘除类(点乘.*,矩阵乘*,元素左右除.\,/.,矩阵左右除\,/);
9.正负号(+,-);
10.转置类(矩阵转置.',共轭转置',幂次^,矩阵幂次^);

热心网友 时间:2023-10-12 04:05

这个点乘和直接相乘是不同概念的,点乘是数组相乘,直接乘是矩阵相乘;

举个列子:

>> a=[1 2 3
4 5 6
7 8 9];
>> b=[1 2 3
4 5 6
7 8 9];
>> c=a.*b

c =
1 4 9
16 25 36
49 81

>> d=b*b
d =
30 36 42
66 81 96
102 126 150

>>

热心网友 时间:2023-10-12 04:06

有影响吗?我觉得顺序不影响最终结果。

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