マトリックス
目次
概要実数行列の作成空行列Query行列行列の要素へのアクセスコロン: operator目の行列行列は動的ですドル演算子低レベルの操作ElementWiseの操作トランスポーズと非トランスポーズのトランスポーズを組み合わせる2つのベクトルの重複2つの実数行列の比較より高いレベルの線形代数は特徴
概要
Scilab言語では、行列が中心的な役割を果たします。このチュートリアルでは、行列の作成とクエリの方法を紹介します。また、分析
マトリックスの要素へのアクセス方法(要素ごとの要素、または上位レベルの操作のいずれか) Scilab では、マトリックスは次のように定義されています。
行数、列数、データの種類(リアル、整数、ブール値、文字列など)
Scilab では、ベクトルは行数(または列数)が 1 に等しい行の特定のケースです。
Scilabには単純なスカラー変数は存在しません。スカラー変数は、1行と1列のマトリックスです。実際の値の行列を作成する
指定された値を持つ行列を作成するためのシンプルで効率的な構文があります。
以下は、行列を定義するために使用されるシンボルのリストです。
square brackets [ ] mark the beginning and the end of the matrix,commas, separating the values in different columns,semicolons ; separating the values of different rows. マトリックスの始まりと終わりをマークする 、異なる列の値を分離する、セミコロン ; 異なる行の値を分離する。
In [1]: A = [1, 2, 3; 4, 5, 6] Out [1]: A =
1. 2. 3.
4. 5. 6.
このコマンドは以下の形式で入力することもできます: [2]: A = [1 2 3
4 5 6] Out [2]: A =
1. 2. 3.
4. 5. 6.
いくつかの Scilab コマンドは、指定されたサイズ、すなわち指定された行数と列数から行を作成します。
eye: identity matrix linspace: linearly spaced vector ones: matrix made of ones zero: matrix made of zero testmatrix: generate some particular matrices grand: random number generator rand: random number generator
In [3]: A = ones(2, 3) Out [3]: A = one
1. 1. 1.
1. 1. 1.
空の行列 [ ]
空のマトリックスは、0×0のマトリックスを作成する空の角括弧を使用して作成できます。In [4]: A = [] Out [4]: A =
[]
この構文はマトリックスの内容を削除し、関連するメモリが解放されます。[5]: A = ones(100, 100);
A = [] Out [5]: A =
[]
クエリ行列
関数は行列をクエリまたは更新します。
size: オブジェクトのサイズmatrix: ベクトルまたはマトリクスを別のサイズに再構成 matrixresize_matrix: 別のサイズの新しいマトリクスを作成
size 関数は二つの出力引数を返します:
Number: number of rows andnc: number of columns. 行数と列数。
[6 ] : A = ones(2, 3)
[nr, nc] = size(A) Out [6]: A =
1. 1. 1.
1. 1. 1.
NO =
2.
nc =
3.
size 関数はまた、次の構文 s = size(A, sel) を持っています。 これは行数または列数のみを取得し、sel は次の値を持つことができます。
sel = 1 または sel = "r" 、行数、sel = 2 または sel = "c" を返し、columns.sel = "*" の数を返し、要素の合計数、すなわち列数回の行数を返します。
[7]: A = ones(2, 3)
size(A, "*") Out [7]: A =
1. 1. 1.
1. 1. 1.
ans =
6.
行列の要素へのアクセス
行列 A の要素にアクセスする方法はいくつかあります。
マトリックス全体、A 構文、A(i,j) 構文を持つ要素ごとの要素、コロン : 演算子を持つサブスクリプトインデックスの範囲。
コロン演算子は次のセクションで検討されます。
マトリックスのすべての要素にグローバルアクセスを許可するには、単純な変数名(例えば、A)を使用できます。+ による追加、+ による減算などのマトリックスには、すべての要素代数操作が使用できます。[8]: A = ones(2, 3)
B = 2 * ones(2, 3)
A + B Out [8]: A =
1. 1. 1.
1. 1. 1.
B =
2. 2. 2.
2. 2. 2.
ans =
3. 3. 3.
3. 3. 3.
マトリックスの1つの要素は、iとjが有効なサブスクリプトである場合、A(i,j)構文で直接アクセスできます。 デフォルトでは、マトリックスの最初のサブスクリプトは1であることを強調しています。これは、たとえば最初のサブスクリプトがオンになっているC言語など、他の言語と対照的です。[9]: A = ones(2, 3)
A(1,1) Out [9]: A =
1. 1. 1.
1. 1. 1.
ans =
1.
[10]: A(12, 1)
A(0, 1) Out [10]:
無効なインデックス。
無効なインデックス。
コロン : operator
コロン演算子の最も単純な構文は次のとおりです。 v = i:j where:
i は開始サブスクリプトで、j は i≤j を含む終了サブスクリプトです。
これにより、ベクトルv = [i, i+1,..., j-1, j] が作成されます。[11]: v = 2:4 Out [11]: v =
2. 3. 4.
完全な構文は、サブスクリプトの生成に使用される増分、すなわちステップ: v = i:s:j' を設定します。
最初のサブスクリプトは i で、j は ending サブスクリプトで、s はステップです。
このコマンドは、v = [i, i+s, i+2*s,..., i+(n-1)*s, i+n*s] というベクトルを作成します。 ここで、n は i+ns≤j のような最大の整数です。[12]: v = 3:2:10 Out [12]: v =
3. 5. 7. 9.
ベクトルvの最後の値は、j=10より小さいi+ns=9であることに注意してください。ステップは負になる可能性があります。最初のケースでは、コロン演算子は10から4までの減少するサブスクリプトを生成できます。2番目の例では、コロン演算子は同時に3より小さい値と10より大きい値がないため、空の行列を生成します。[13]: v = 10:-2:3 Out [13]: v =
10. 8. 6. 4.
In [14]: v = 3:-2:10 Out [14]: v = v = v = v = v = v =
[]
サブスクリプトのベクトルを使用すると、次の簡略化された構文A(i:j,k:l)と同様に、特定の範囲のマトリックスの要素にアクセスできます。完全な構文は A(i:s:j,k:t:l) で、s と t は steps.n です。[15]: A = testmatrix("hilb",5)
A(1:2,3:4) Out [15]: A =
25. -300. 1050. -1400. 630.
- 300. 4800. -18900. 26880. -12600.
1050. -18900. 79380. -117600. 56700. - 1400. 26880. -117600. 179200. -88200.
630. -12600. 56700. -88200. 44100.
ans =
1050. -1400. - 18900. 26880.