今日の人気記事

  1. continue文 - ループをスキップ
  2. エスケープシーケンス - 特殊文字
  3. 入力した行列の積(掛け算)を計算する
  4. 四則演算 - 算術演算子
  5. LinuxでC言語 - コンパイラ(gcc)のインストール

入力した行列の「転置行列」を表示する

当ページのリンクには広告が含まれています。

スポンサーリンク

入力した行列の「転置行列」を表示するサンプルプログラムを紹介します。

転置行列

転置行列とは、mxn行列の要素 \(a_{ij}\) と \(a_{ji}\) を入れ替えたnxm行列のことです。

ちょっと分かりづらいので、転置行列の「例」をみてみましょう。

例①

例えば、行列 \(A\)

$$ A = \left( \begin{array}{ccc} 1 & 2 & 3\\ 4 & 5 & 6\\ 7 & 8 & 9 \end{array} \right) $$

の転置行列 \(A^{\mathrm{T}}\) は

$$ A^{\mathrm{T}} = \left( \begin{array}{ccc} 1 & 4 & 7\\ 2 & 5 & 8\\ 3 & 6 & 9 \end{array} \right) $$

になります。

例②

例えば、行列 \(B\)

$$ B = \left( \begin{array}{ccc} 1 & 2 & 3\\ 4 & 5 & 6 \end{array} \right) $$

の転置行列 \(B^{\mathrm{T}}\) は

$$ B^{\mathrm{T}} = \left( \begin{array}{cc} 1 & 4\\ 2 & 5\\ 3 & 6 \end{array} \right) $$

になります。

サンプルプログラム

それではサンプルプログラムをみてみましょう。

/*
 * C言語のサンプルプログラム - Webkaru
 * - 入力した行列の「転置行列」を表示 -
 */
#include <stdio.h>

int main(void){

  int i, j;

  /* 行列と行列 */
  int a[10][10], trans[10][10];

  /* 行と列 */
  int row, column;

  printf("行数 = ");
  scanf("%d", &row);
  printf("列数 = ");
  scanf("%d", &column);

  /* 行列の入力 */
  printf("\n行列を入力してください\n");
  for(i=0;i<row;++i){
    for(j=0;j<column;++j){
      printf("行列の要素 A[%d][%d] = ", i+1, j+1);
      scanf("%d", &a[i][j]);
    }
  }

  /* 入力した行列の表示 */
  printf("\nA = \n");
  for(i=0;i<row;++i){
    for(j=0;j<column;++j){
      printf("%d  ", a[i][j]);
      if(j==column-1)
          printf("\n");
    }
  }

  /* 転置行列 */
  for(i=0;i<row;++i){
    for(j=0;j<column;++j){
     trans[j][i]=a[i][j];
    }
  }

  /* 転置行列の表示 */
  printf("\n転置行列 = \n");
  for(i=0;i<column;++i){
    for(j=0;j<row;++j){
      printf("%d  ",trans[i][j]);
      if(j==row-1)
          printf("\n");
    }
  }

  return 0;

}

サンプルプログラムで使っている構文

実行結果

いくつかの実行結果です。

行数 = 3
列数 = 3

行列を入力してください
行列の要素 A[1][1] = 1
行列の要素 A[1][2] = 2
行列の要素 A[1][3] = 3
行列の要素 A[2][1] = 4
行列の要素 A[2][2] = 5
行列の要素 A[2][3] = 6
行列の要素 A[3][1] = 7
行列の要素 A[3][2] = 8
行列の要素 A[3][3] = 9

A = 
1  2  3  
4  5  6  
7  8  9  

転置行列 = 
1  4  7  
2  5  8  
3  6  9  
行数 = 2
列数 = 3

行列を入力してください
行列の要素 A[1][1] = 1
行列の要素 A[1][2] = 2
行列の要素 A[1][3] = 3
行列の要素 A[2][1] = 4
行列の要素 A[2][2] = 5
行列の要素 A[2][3] = 6

A = 
1  2  3  
4  5  6  

転置行列 = 
1  4  
2  5  
3  6 

このように入力した行列の「転置行列」を表示します。

サンプルプログラム の人気記事

  1. 10進数を2進数に変換する
  2. 入力した自然数の階乗を計算する
  3. 配列に格納した数値を昇順ソートする
  4. 入力した2つの数値の掛け算・割り算する
  5. for文 - 1つ飛ばしの繰り返し処理を実行する(奇数・偶数)
  6. サンプルプログラム集
  7. フィボナッチ数の計算する
  8. 2次方程式の解を計算する
  9. 入力した行列の積(掛け算)を計算する
  10. 入力した文字がアルファベットか数字かを判定する

関連記事(一部広告含む)