主要内容

基本的な行列演算

この例では,matlab®言語で行列を操作するための基本的な手法と関数を示します。

最初に9の要素をも単純なベクトル一个を作成しましょう。

A = [1 2 3 4 6 4 3 4 5]
一个=1×91 2 3 4 6 4 3 4 5

ベクトル一个の各要素に2を加え,結果を新しいベクトルに格納します。

Matlabでは,ベクトルや行列演算の特別な操作は必要ありません。

B = a + 2
b =1×93 4 5 6 8 6 5 6 7

Matlabでグラフを作成する場合,1 .のコマンドで簡単に行えます。ベクトル加算の結果をグリッドラ邮箱ン付きでプロットしてみましょう。

情节(b)网格

图中包含一个axes对象。axis对象包含一个类型为line的对象。

Matlabはこの他の種類のグラフも軸ラベル付きで表示することができます。

条(b)包含(示例#的) ylabel (“英镑”

图中包含一个axes对象。axes对象包含一个bar类型的对象。

Matlabは記号によるプロットも行うことができます。これは,デタ点のマクにアスタリスク(*)を使っている例です。MATLABでは、この他にもさまざまな記号、ライン タイプでプロットすることができます。

情节(b,‘*’)轴([0 10 0 10])

图中包含一个axes对象。axis对象包含一个类型为line的对象。

Matlabは,行列演算の分野が特に優れています。

行列の行の区切りにセミコロン(;)を使って,ベクトルと同じように簡単に行列を作成します。

A = [1 2 0;2 5 -1;4 10 -1]
一个=3×31 2 0 2 5 -1 4 10 -1

行列一个の転置も簡単に求めることができます。

B = a '
B =3×31 2 4 2 5 10 0 -1 -1

2 ecommの行列の乗算を行います。

Matlabは,行列を数値の集合として扱うように制限しません。MATLABは行列を扱っていることを認識した上で、それに応じて計算を調整します。

C = a * b
C =3×35 12 24 12 30 59 24 59 117

今度は行列の乗算ではなく,。*演算子を使って2の行列や,ベクトルの要素ごとの乗算を行います。

C = a .* b
C =3×31 4 0 4 25 -10 0 -10 1

行列Aを使用して方程式A*x = bを解きましょう。\(バックスラッシュ)演算子を使って行います。

B = [1;3;5]
b =3×11 3 5
x = A\b
x =3×11 0 -1

A*xがbに等しいことが示されます。

r = A*x - b
r =3×10 0 0

Matlabには,多くの一般的な行列演算を行うための関数が提供されています。

固有値を得る関数もあります…

eig (A)
ans =3×13.7321 0.2679 1.0000

...同様に,特異値も得られます。

圣言(A)
ans =3×112.3171 0.5149 0.1577

関数“poly”は,特性多項式の係数を含むベクトルを生成します。

行列一个の特性多項式は,以下の式で表されます。

d e t λ - 一个

p = round(poly(A))
p =1×41 -5 5 -1

関数を使用すると,多項式の根を簡単に求めることができます。

これらはまさに,元の行列の固有値です。

根(p)
ans =3×13.7321 1.0000 0.2679

Matlabは単なる行列演算を超えて,いろいろな応用があります。

2のベクトルの畳み込みを行うには…

Q = conv(p,p)
q =1×71 -10 35 -52 35 -10

...または,もう一度畳み込みを行い,結果をプロットします。

R = conv(p,q)
r =1×101 -15 90 -278 480 -480 278 -90 15 -1
情节(r);

图中包含一个axes对象。axis对象包含一个类型为line的对象。

またはコマンドを使うと,いでもメモリ内に格納されている変数のリストが得られます。

名称大小字节类属性A 3x3 72双B 3x3 72双C 3x3 72双A 1x9 72双ans 3x1 24双B 3x1 24双p 1x4 32双q 1x7 56双r 1x10 80双x 3x1 24双

特定の変数の値を取得する場合は,変数名を入力します。

一个
一个=3×31 2 0 2 5 -1 4 10 -1

ステートメントをコンマまたはセミコロンで区切ると,1行に複数のステートメントを記述することができます。

演算の結果を格納する変数を割り当てなかった場合,結果はという一時変数に格納されます。

√6 (1)
Ans = 0.000 + 1.0000i

このように,matlabは,複素数も計算で簡単に扱うことができます。

関連するトピック