記事ディレクトリ
序文
MATLAB の正式名称は MATrix LABoratory であることが分かりますが、AMTLAB の本来の目的は行列演算であることがわかり、定数であっても 1*1 行列として扱うことができます。一定の操作を処理します。配列と行列は非常によく似ています。ベクトルは 1 次元配列であり、行列は 2 次元配列です。しかし、MATLAB では、配列と行列の演算はまったく異なります。これを明確にする必要があります。
1. アレイ
配列は一連の要素の組み合わせであり、MATLAB ではその外観は行列と変わりませんが、これらは 2 つの完全に異なる変数を表します。配列にも行と列の概念がありますが、配列間の演算は行列とは異なり要素間の演算であることが多く、行列は全体であり、演算規則は線形代数の規則に従って実行する必要があります。配列と行列の演算の違いは主に演算子に反映されますが、演算が要素間のものか全体間のものかに注意してください。
2.ベクトル
ベクトルの構築方法: ① 直接構築法、② インクリメンタル法、③ linspace/logspace 関数法、③ ベクトル法
① 直接構築法: 以下のように、中間のカンマまたはスペースは同じです。
② インクリメンタル方式:下図のように、ベクトル A は 0 から 5 までの 1 ずつ増加する行ベクトル、ベクトル B は 0 から 6 までの 2 ずつ増加する行ベクトル、ベクトル B は 0 から 6 までの行ベクトルで 2 ずつ増加します。
③ Linspace/logspace 関数メソッド: linspace 関数を使用してベクトルを構築し、最初と最後の値と要素の数を指定する必要があります; 基本形式は x = linspace (first, last, num) ですここで、first、last、num はそれぞれ最初と最後の要素と要素の数を表します。
logspace 関数を使用してベクトルを構築するには、最初と最後の値、および要素の数を指定する必要があります; x = logspace(first,last,num) (最初と最後の値のサイズは 10^) first と 10^last、デフォルトは num = 50 です。
3. マトリックス
3.1. マトリックスの作成方法
① 簡単な作成方法: 行列を直接記述し、異なる列をスペースまたはカンマで区切って、異なる行をセミコロンで区切ります。
② 関数 Meshgrid は行列を作成します。
構文形式は次のとおりです: [X,Y] = Meshgrid(x,y) 注: x と y は行ベクトルと列ベクトルを表します。
[X,Y] = メッシュグリッド(x)
[X,Y,Z] = メッシュグリッド(x,y,z)
[X,Y,Z] = メッシュグリッド(x)
③ 特別な行列の構築: MATLAB は、次のような特別な行列を構築するための複数の関数を提供します。
① 1 つ: すべての要素が 1 に等しい行列を作成します。
② ゼロ: すべての要素が 0 である行列を作成します。
③ eye: 対角が 1、その他の要素が 0 の行列を作成します。
④ accumarray: 入力行列の要素を出力行列の指定された位置に割り当てます。
⑤ diag: ベクトルに基づいて対角行列を作成します。
⑥ マジック: 行、列、対角要素の合計が等しいマジック キューブ行列を作成します。
⑦ rand: 一様分布に従う乱数を要素とする行列または配列を作成します。
⑧ randn: 正規分布に従う乱数を要素とする行列または配列を作成します。
⑨ randperm: ベクトル (1*n 行列) を作成します。
④ 集計行列: 集計行列は、1 つ以上の行列を結合して形成される新しい行列です。記号 [] は行列構築記号であるだけでなく、MATLAB プラットフォームの集計演算子でもあります。たとえば、C = [AB] は行列 A と B を水平方向に集約することを意味し、C = [A;B] は行列 A と B を垂直方向に集約することを意味します。
⑤ 3次元行列を構築します。
3.2. 行列変換
① reshape 関数: reshape(M,2,6) など、M 行列に基づいて列ごとに配置され、2 行 6 列の行列を作成します。reshape 関数を使用して行列を生成する場合、数値が2 つの行列の要素の数は同じである必要があります , ここで M は 3 行 4 列の行列、合計 12 要素です。reshape によって生成される 2 行 6 列の行列も 12 要素を持ちます。
②flip関数:上下左右を反転できる行列フリップ;filpudは上下、filplrは左右を反転します。
③ rot 関数: rot90(M) など。行列 M を反時計回りに 90 度回転することを意味します。
④ repmat 関数: たとえば、repmat(A,2,3) は、行列 A を行ベクトルで 2 回、列ベクトルで 3 回コピーすることを意味します。
⑤ diff 関数: 次の要素と前の要素の差分を求めます。
3.3. 行列演算
行列と配列の演算は異なります。配列は要素間の演算を重視しますが、行列は線形代数の演算規則を使用して実行されます。行列は全体であり、演算は全体として実行する必要があります。行列と配列の演算の違いをよりよく理解するために、異なる演算子に基づいてそれらを区別できます。
配列 |
+ |
- |
.* |
.\ |
./ |
.^ |
。」 |
マトリックス |
+ |
- |
* |
\ |
/ |
^ |
' |
意義 |
追加 |
減算 |
かける |
右に分ける |
左に分割 |
力 |
転置 |
この表によれば、配列と行列では加算と減算の記号を除いて演算が異なることがわかり、演算記号によって変数が配列であるか行列であるかを識別することができます。プログラミングする際にも注意が必要です。
行列演算に加えて、配列内では次のような演算もあります。
たとえば、v=[-5 1 5 -3] の場合、
① min(v): この配列内の最小の要素を検索し、-5 を返します。
② max(v): この配列内の最大の要素を見つけて 5 を返します。
③sign(v): この配列内の要素の符号を取得し、-1 1 1 -1 を返します。
④ sum(v): 配列内の要素の合計を求め、-5+1+5-3 = -2 を返します。
⑤ abs(v): 配列内の要素の絶対値を求め、5 1 5 3 を返します。
⑥ prod(v): 配列内の要素の積を求め、-5*1*5*(-3) = 75 を返します。
要約する
以上が今日学んだこと、主にベクトルと行列について、MATALBでのベクトルと行列の作成方法、行列の変換と演算などです関数コマンドが多く使用するので処理が遅いですゆっくり消化していきましょう一緒に!!!