Matlab 能够区分“正确的”矩阵乘法和具有不同运算符的逐元素矩阵乘法,因此前者完成为A * B
,后者完成为A .* B
。这非常方便,我想知道是否有一种方法可以在 C++ 中为自定义矩阵类实现相同的功能(同样适用于./
and .^
)。也就是说,我想知道是否有可能通过定义宏或任何其他方法来实际编译如下内容:
MyMatrix A(2,3), B(2,3), C(2,3); //These are 2x3 matrices for the sake of concreteness
C = A .* B; //Similarly for ./, .^
我尝试用一些简单#define
的函数来做这个,但无法让它工作,所以我想我会把它放到 SO 上。我可以接受'near misses',即如果.*
不能工作但不知何故:*
可以,就足够了。注意,我专门寻找运算符——当然,这种行为可以通过函数以显而易见的方式完成,但类似 Matlab 的运算符会非常方便。