Pythonでn×nのマトリックス(行列)を作成する方法
Pythonでn×nの正方行列(マトリックス)を作成する必要がある場合、リスト内包表記を使うと簡潔かつ効率的に実装できます。本記事では、具体的なサンプルコードとその出力結果、さらに内部の動作についてわかりやすく解説します。
サンプルコード
以下は、リスト内包表記を用いてn×nのマトリックスを作成する実際のコード例です。
N = 4
print("Nの値は:")
print(N)
my_result = [list(range(1 + N * i, 1 + N * (i + 1)))
for i in range(N)]
print("N × N のマトリックスは:")
print(my_result)
出力結果
Nの値は: 4 N × N のマトリックスは: [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]
コードの解説
変数Nには、あらかじめ行列のサイズとなる値「4」が定義されています。
この値はコンソールに出力され、作成するマトリックスの次元を示します。
リスト内包表記の中でrange(N)によりインデックスiが0からN-1まで反復処理されます。
range(1 + N * i, 1 + N * (i + 1))によって、各行に連続するN個の数値が割り当てられます。
各行はlist()でリストに変換され、変数my_resultに格納されます。
最終的に、完成したn×nのマトリックスがコンソールに表示されます。
動作のポイント
この手法では、外側のリスト内包表記が「行」を、内側のrange()が「列」に対応する値を生成します。例えばi=0の場合は「1」から「4」までが最初の行になり、i=1の場合は「5」から「8」までが2行目になります。このようにして、1から始まる連続した整数で構成されるn×nの行列を簡単に作成できます。
NumPyなどの外部ライブラリを使わず、標準のPython機能だけで実装できるため、軽量なスクリプトや学習用途に最適です。行列のサイズを変更したい場合は、変数Nの値を変更するだけで柔軟に対応できます。
-
Pythonで2つの行列を加算するプログラム
この記事では、ユーザーが入力した2つの行列を受け取り、その合計(加算結果)を表示するPythonプログラムを紹介します。行列の加算では、ネストされたリスト内包表記や二重ループを活用することで、各要素を効率的に処理できます。 アルゴリズム 処理の手順は以下の通りです。 ステップ1:2つの行列を入力する。 ステップ2:ネストされたforループを使って、各行・各列を順番に走査する。 ステップ3:各イテレーションで、2つの行列の対応する要素同士を加算し、その結果を格納する。 サンプルコード 以下は、ネストされたループを使用して2つの行列を加算するプログラムです。まず1つ目の行列Aの要素を入力し、続
-
2つの行列を乗算するPythonプログラム
ユーザーが入力した2つの行列を受け取り、その積(乗算結果)を表示するのがこのプログラムの目的です。ここでは、ネストされたリスト(2次元リスト)を使って行列を表現します。 行列の乗算では、「1つ目の行列の行の要素」と「2つ目の行列の列の要素」をそれぞれ掛け合わせ、その合計値を結果行列の要素とします。つまり、結果行列の i 行 j 列の値は、行列Aの i 行目と行列Bの j 列目の対応する要素同士の積の総和になります。 アルゴリズム ステップ1:2つの行列を入力する。 ステップ2:ネストされたforループで、各行・各列を順番に走査する。 ステップ3:すべての要素が0で初期化された結果用行列を用