いきなり答える備忘録

G Suite・Microsoft 365・LibreOfficeなどに関するメモと日々の実験

(Excel)任意の対角行列を生成する

 Excelで対角行列(非対角成分がすべて0)を生成する方法についてです。対角の各要素の値を任意に設定することができます。

  • 「=配列*MUNIT(配列の長さ)」という式で、配列の各要素を対角要素とする対角行列が作れます。

手順

f:id:accs2014:20200704140518p:plain:right:w450

 B3:E3に、対角行列の成分とする各要素を配置しています。
 そして、B6セルに次のように入力します。

=B3:E3*MUNIT(4)

 配列と単位行列(次数4)を単純に「*」で結ぶのがポイントです。
 この演算により、単位行列の1列目の値が2倍(B3の値)、2列目が4倍(C3の値)……4列目が3倍(E3の値)となります。
 

f:id:accs2014:20200704140522p:plain:right:w450

 結果はこうなります。

 以下は備考です。

 単に「={2,4,1,3}*MUNIT(4)」で同じ結果になります。
 式中の「*」の前後を逆に入れ替えても同じ結果になります。
 配列は縦に並んでいても同じ結果になります(これは行列が単位行列であるためです。一般の行列に対しては異なる結果となります)。