C#で行列の加算を行う方法を徹底解説!初心者向けサンプルコード付き
行列の加算(行列の和)を求めるには、2つの行列を用意します。まず、それぞれの行列の行数と列数を入力します。なお、行列同士を加算するためには、両方の行列が同じ行数・同じ列数を持っている必要がある点に注意しましょう。
次に、両方の行列に要素を入力していきます。その後、計算結果を格納するための新しい配列を宣言し、2つの配列の対応する要素同士を足した値を代入します。加算の本体となる処理は、わずかこの1行です。
arr3[i, j] = arr1[i, j] + arr2[i, j];
処理の流れ
- 行列の行数(m)と列数(n)をキーボードから入力する
- 2つの行列(arr1、arr2)の各要素を二重ループで読み込む
- 対応する要素同士を足し合わせて、結果を arr3 に格納する
- 元の行列と加算結果を画面に表示する
サンプルコード
それでは、C#で行列の加算を実現する完全なコードを見てみましょう。
using System;
using System.Linq;
class Demo {
static void Main() {
int m, n, i, j;
Console.Write("行列の行数と列数を入力してください:");
m = Convert.ToInt16(Console.ReadLine());
n = Convert.ToInt16(Console.ReadLine());
int[] arr1 = new int[10, 10];
int[] arr2 = new int[10, 10];
int[] arr3 = new int[10, 10];
Console.Write("要素を入力してください - 行列1:");
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
arr1[i, j] = Convert.ToInt16(Console.ReadLine());
}
}
Console.Write("要素を入力してください - 行列2:");
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
arr2[i, j] = Convert.ToInt16(Console.ReadLine());
}
}
Console.WriteLine("行列1");
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
Console.Write(arr1[i, j] + "\t");
}
Console.WriteLine();
}
Console.WriteLine("行列2");
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
Console.Write(arr2[i, j] + "\t");
}
Console.WriteLine();
}
// 行列の加算処理
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
arr3[i, j] = arr1[i, j] + arr2[i, j];
}
}
Console.WriteLine("行列の加算結果");
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
Console.Write(arr3[i, j] + "\t");
}
Console.WriteLine();
}
Console.ReadLine();
}
}実行結果
上記のコードを実行すると、以下のような出力が得られます。
行列の行数と列数を入力してください:3 3 要素を入力してください - 行列1:1 2 3 4 5 6 7 8 9 要素を入力してください - 行列2:1 2 3 4 5 6 7 8 9 行列1 1 2 3 4 5 6 7 8 9 行列2 1 2 3 4 5 6 7 8 9 行列の加算結果 2 4 6 8 10 12 14 16 18
コードのポイント
- 多次元配列の利用:C#では
int[]のように宣言することで、2次元配列(行列)を簡単に扱えます。 - 二重ループによる走査:外側のループで行(i)、内側のループで列(j)を制御し、すべての要素にアクセスします。
- 要素ごとの加算:行列の加算は「同じ位置にある要素同士を足す」だけなので、
arr3[i, j] = arr1[i, j] + arr2[i, j]の1文で表現できます。
このように、C#の多次元配列とループ処理を組み合わせれば、行列の加算は非常にシンプルに実装できます。ぜひ実際にコードを動かして、動作を確認してみてください。
-
C++でOpenCVの画像を保存する方法|imwrite()関数の使い方を解説
C++とOpenCVで画像をファイルに保存する基本 本記事では、OpenCVで扱った画像をコンピュータ上の任意の場所に保存する方法を解説します。OpenCVでは、imwrite()関数を使用することで、画像を指定したファイルへ簡単に書き出せます。保存時のファイル拡張子が、そのまま画像フォーマット(JPEG・PNGなど)として認識される仕組みです。 imwrite()関数の基本構文 imwrite(保存先/拡張子を含めた画像名, 元となる行列) 第1引数には画像の保存先パスとファイル名を、第2引数には画像データが格納されたMat型の行列を指定します。 各パラメータの意味 保存先: 画像を保
-
C++でコンソール画面をクリアする方法をわかりやすく解説
C++のプログラムからコンソール(ターミナル)画面に表示された内容を消去したい場合、system()関数を使ってOSのコマンドを実行するのが一般的な方法です。この関数は標準ライブラリ<cstdlib>で定義されており、引数として渡した文字列をシェルコマンドとして実行してくれます。クリアに使うコマンドはOSによって異なります。Linux / macOS:POSIX環境で動作する「clear」コマンドを使用Windows:コマンドプロンプト用の「cls」コマンドを使用Linuxでコンソールをクリアするサンプルコード以下は、Linux環境で「clear」コマンドをsystem()関数に渡