@= 行列積代入

最終更新:2026-09-22

@= 行列積代入

@= は左辺と右辺の行列積を破壊的に行います。x = x @ y と等価です。

カテゴリ演算子
種類演算子

📝 構文

x @= y

▶ 例

下のコードを編集し「実行」をクリックすると、出力パネルに結果が表示されます:

実行結果:

[[19, 22], [43, 50]]
ℹ️ 説明 @= は行列積に numpy などのライブラリが必要です。標準の組み込み型にはこの演算は定義されていません。
さらに多くのケースは近日公開予定です。

❓ よくある質問

Q`@=` にはどのような環境が必要ですか?
Aオブジェクトが `__imatmul__` または `__matmul__` を実装している必要があり、通常は NumPy です:`a @= b` は配列の行列積を原地で行います。組み込みの `list`、`int` は非対応で `TypeError` になります。
Q`@=` と a = a @ b に違いはありますか?
A`@=` はまず `__imatmul__` を試して原地演算します(NumPy 配列だと原地変更)。`__imatmul__` がないと `a = a @ b` に退化します。結果は通常同じですが、オブジェクトの `id` は異なることがあります。
QNumPy を入れずに `@=` を使えますか?
A使えます。カスタムクラスが `__imatmul__`(または `__matmul__`)を実装すれば `@=` をサポートします。組み込みの `list`、`int` などは未実装のため `TypeError` になります。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%