[] MATLAB魔方陣行列を使用した行列



Matrix With Matlab Magic Square Matrix



記事のディレクトリ

行列と魔方陣行列

マトリックスについて

MATLAB®環境では、行列は数値の長方形の配列です。 1×1行列(つまり、スカラー)で、1つの行または行列(つまり、ベクトル)のみが含まれている場合、特別な意味が追加されることがあります。他の方法を使用してデータ値と非数値データを格納するMATLABですが、最初は、すべてが行列として最もよく扱われることがよくあります。 MATLABは、操作を可能な限り単純化するように設計されています。他のプログラミング言語は1つの数値しか処理できず、MATLABを使用すると行列全体をすばやく簡単に処理できます。

マトリックスに入る

MATLABの学習を開始する最良の方法は、行列の処理方法を学習することです。
MATLAB入力行列では、さまざまな方法をとることができます。



  • 明確なリスト要素を入力します。
  • 外部データファイルから行列をロードします。
  • 組み込み関数を使用した生成行列。
  • 行列を作成し、独自の関数を使用してファイルに保存します。

まず、要素のリストとしてデューラーの行列を入力します。いくつかの基本的な規則に従う必要があるだけです。

  1. 要素スペースまたはコンマ行の使用。
  2. セミコロンを使用すると、各行の終わりを示します。
  3. 要素のリスト全体を囲む角括弧[]。
A = [16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1] A = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1

合計行列、対角行列転置、および

さまざまな方法で、相関の魔方陣行列の特別な属性と要素が合計されることに気付いたかもしれません。行または列に沿った合計、または合計の主対角線に沿った2つの合計の場合、常に同じ数が得られます。



sum(A) ans = 34 34 34 34

出力変数が指定されていない場合、MATLABは変数ans(省略形の回答)を使用して計算結果を格納します。 Aの行ベクトルを含む列の合計を計算する必要があります。各列の合計は同じです。つまり、マジックナンバーと34です。

How to deal with the sum of the line? Priority will be given MATLAB columns of the matrix、転置された行列が転置された列の合計を計算し、結果を転置するように行の合計を取得する方法。

MATLABには2つの転置演算子があります。アポストロフィ演算子(A 'など)は、複素共役転置を実行します。主対角行列を反転し、シンボル行列の複雑な要素の虚数部も変更します。アポストロフィ点演算子(A. ')は行列を転置しますが、複雑な記号要素には影響しません。行列要素を構成するすべての実数について、両方の演算子は同じ結果を返します。



A' ans = 16 5 9 4 3 10 6 15 2 11 7 14 13 8 12 1 sum (A ')'% generates a column vector of the row sum ans = 34 34 34 34

二重転置を回避するための他の方法では、合計関数パラメーターを使用します。次元:

A = [16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1] column sum (A, 1)% of the representative processing matrix sum (A, 2)% matrix row represents processing ans = 34 34 34 34 ans = 34 34 34 34

そして、sum diag関数を使用して、主対角要素の合計を取得します。

diag(A) ans = 16 10 7 1 sum(diag(A)) ans = 34

行と列と対角線の魔方陣行列が表示される理由と、これは魔方陣行列と呼ばれます。

魔法の機能

実際には、ほぼすべてのサイズの魔方陣行列を作成できる組み込みのMATLAB関数が含まれています。この機能は魔法と呼ばれ、驚くことではありません。

B = magic(4) B = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1

このマトリックスは、デューラーの彫刻マトリックスとほぼ同じであり、すべて同じ「魔法」の特性を持っていますが、違いは2つの中間体が交換されていることだけです。

真ん中の2つのBを入れ替えて、デューラーAのように見せることができます。Bの各行について、指定された順序(1,3,2,4)で列を再配置します。

A = B (:, [1 3 2 4])% same row, column exchange A = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1

生成行列

4つのMATLABソフトウェアは、基本行列を生成するための関数を提供します。

ゼロ:すべてゼロ
1つ:すべて1
rand:均一に分布したランダム要素
randn:正規分布のランダム要素

Z = zeros(2,4) Z = 0 0 0 0 0 0 0 0 F = 5*ones(3,3) F = 5 5 5 5 5 5 5 5 5 N = fix(10*rand(1,10)) N = 9 2 6 4 8 7 4 0 8 4 R = randn(4,4) R = 0.6353 0.0860 -0.3210 -1.2316 -0.6014 -2.0046 1.2366 1.0556 0.5512 -0.4931 -0.6313 -0.1132 -1.0998 0.4620 -2.3252 0.3792