Matlab は、「適切な」行列乗算と要素ごとの行列乗算を異なる演算子で区別できるため、前者は として実行されA * B
、後者は として実行されA .* B
ます。./
これは非常に便利で、C++ でカスタム マトリックス クラス (およびと同様) に対して同じことを達成する方法があるかどうか疑問に思っていました.^
。つまり、マクロやその他の方法を定義することで、次のようなものを実際にコンパイルできるかどうか疑問に思っていました。
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に入れることにしました。私は「ニアミス」を受け入れることが.*
でき:*
ます. NB、私は特に演算子を探しています。もちろん、この動作は関数で明白な方法で実現できますが、Matlab のような演算子は非常に便利です。