Matlab-arrays
MATLAB-配列
MATLABのすべてのデータ型のすべての変数は多次元配列です。 ベクトルは1次元配列であり、マトリックスは2次元配列です。
ベクトルと行列についてはすでに説明しました。 この章では、多次元配列について説明します。 ただし、その前に、特別な種類の配列について説明します。
MATLABの特別な配列
このセクションでは、特別な配列を作成する関数について説明します。 これらのすべての関数では、1つの引数で正方配列が作成され、2つの引数で長方形配列が作成されます。
- zeros()*関数は、すべてゼロの配列を作成します-
たとえば-
MATLABは上記のステートメントを実行し、次の結果を返します-
- ones()*関数はすべて1の配列を作成します-
たとえば-
MATLABは上記のステートメントを実行し、次の結果を返します-
- eye()*関数は単位行列を作成します。
たとえば-
MATLABは上記のステートメントを実行し、次の結果を返します-
- rand()*関数は、(0,1)に一様に分布した乱数の配列を作成します−
たとえば-
MATLABは上記のステートメントを実行し、次の結果を返します-
魔方陣
- 魔方陣*は、要素が行方向、列方向、または斜めに追加されたときに同じ合計を生成する正方形です。
- magic()*関数は、魔方陣配列を作成します。 それは、正方形のサイズを与える特異な引数を取ります。 引数は3以上のスカラーでなければなりません。
MATLABは上記のステートメントを実行し、次の結果を返します-
多次元配列
2次元を超える配列は、MATLABでは多次元配列と呼ばれます。 MATLABの多次元配列は、通常の2次元行列の拡張です。
一般に、多次元配列を生成するには、まず2次元配列を作成して拡張します。
たとえば、2次元配列aを作成しましょう。
MATLABは上記のステートメントを実行し、次の結果を返します-
配列_a_は3行3列の配列です。次のような値を提供することで、_a_に3番目の次元を追加できます-
MATLABは上記のステートメントを実行し、次の結果を返します-
ones()、zeros()、またはrand()関数を使用して多次元配列を作成することもできます。
例えば、
MATLABは上記のステートメントを実行し、次の結果を返します-
- cat()*関数を使用して多次元配列を作成することもできます。 指定された次元に沿って配列のリストを連結します-
cat()関数の構文は-
どこで、
- _B_は作成された新しい配列です
- A1 _、 A2 _、… 連結される配列です
- _dim_は、配列を連結する次元です
例
スクリプトファイルを作成し、それに次のコードを入力します-
あなたがファイルを実行すると、それが表示されます-
配列関数
MATLABは、配列の内容を並べ替え、回転、並べ替え、形状変更、またはシフトするための次の関数を提供します。
Function | Purpose |
---|---|
length | Length of vector or largest array dimension |
ndims | Number of array dimensions |
numel | Number of array elements |
size | Array dimensions |
iscolumn | Determines whether input is column vector |
isempty | Determines whether array is empty |
ismatrix | Determines whether input is matrix |
isrow | Determines whether input is row vector |
isscalar | Determines whether input is scalar |
isvector | Determines whether input is vector |
blkdiag | Constructs block diagonal matrix from input arguments |
circshift | Shifts array circularly |
ctranspose | Complex conjugate transpose |
diag | Diagonal matrices and diagonals of matrix |
flipdim | Flips array along specified dimension |
fliplr | Flips matrix from left to right |
flipud | Flips matrix up to down |
ipermute | Inverses permute dimensions of N-D array |
permute | Rearranges dimensions of N-D array |
repmat | Replicates and tile array |
reshape | Reshapes array |
rot90 | Rotates matrix 90 degrees |
shiftdim | Shifts dimensions |
issorted | Determines whether set elements are in sorted order |
sort | Sorts array elements in ascending or descending order |
sortrows | Sorts rows in ascending order |
squeeze | Removes singleton dimensions |
transpose | Transpose |
vectorize | Vectorizes expression |
例
次の例は、上記の機能の一部を示しています。
長さ、寸法、要素数-
スクリプトファイルを作成し、それに次のコードを入力します-
あなたがファイルを実行すると、次の結果が表示されます-
配列要素の循環シフト-
スクリプトファイルを作成し、それに次のコードを入力します-
あなたがファイルを実行すると、次の結果が表示されます-
配列の並べ替え
スクリプトファイルを作成し、それに次のコードを入力します-
あなたがファイルを実行すると、次の結果が表示されます-
セル配列
セル配列は、各セルが異なる次元とデータ型の配列を格納できるインデックス付きセルの配列です。
どこで、
- _C_はセル配列です。
- _dim_は、セル配列Cの次元を指定するスカラー整数または整数のベクトルです。
- _dim1、… 、dimN_はCの次元を指定するスカラー整数です。
- _obj_は次のいずれかです-
- Java配列またはオブジェクト
- System.StringまたはSystem.Object型の.NET配列
例
スクリプトファイルを作成し、それに次のコードを入力します-
あなたがファイルを実行すると、次の結果が表示されます-
セル配列のデータへのアクセス
セル配列の要素を参照するには2つの方法があります-
- セルのセットを参照するために、インデックスを最初のブラケット()で囲む
- インデックスを中括弧\ {}で囲み、個々のセル内のデータを参照します
インデックスを最初の括弧で囲むと、セルのセットを参照します。
滑らかな括弧内のセル配列インデックスは、セルのセットを指します。
たとえば-
MATLABは上記のステートメントを実行し、次の結果を返します-
中括弧でインデックスを作成することにより、セルのコンテンツにアクセスすることもできます。
たとえば-
MATLABは上記のステートメントを実行し、次の結果を返します-