MATLAB-配列
MATLAB のすべてのデータ型の変数はすべて多次元配列です。ベクトルは 1 次元配列で、マトリックスは 2 次元配列です。
ベクトルと行列についてはすでに説明しました。この章では、多次元配列について説明します。ただし、その前に、いくつかの特別なタイプの配列について説明しましょう。
MATLAB の特別な配列
このセクションでは、いくつかの特別な配列を作成するいくつかの関数について説明します。これらすべての関数で、1 つの引数は正方形の配列を作成し、2 つの引数は長方形の配列を作成します。
zeros() 関数はすべてゼロの配列を作成します −
たとえば-
ライブデモzeros(5)
MATLAB は上記のステートメントを実行し、次の結果を返します −
ans = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ones() 関数はすべて 1 の配列を作成します −
たとえば-
ライブデモones(4,3)
MATLAB は上記のステートメントを実行し、次の結果を返します −
ans = 1 1 1 1 1 1 1 1 1 1 1 1
目() 関数は恒等行列を作成します。
たとえば-
ライブデモeye(4)
MATLAB は上記のステートメントを実行し、次の結果を返します −
ans = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
rand() 関数は、(0,1) に一様に分布した乱数の配列を作成します −
たとえば-
ライブデモrand(3, 5)
MATLAB は上記のステートメントを実行し、次の結果を返します −
ans = 0.8147 0.9134 0.2785 0.9649 0.9572 0.9058 0.6324 0.5469 0.1576 0.4854 0.1270 0.0975 0.9575 0.9706 0.8003
魔方陣
魔方陣 要素が行方向、列方向、または対角線方向に追加された場合に、同じ合計を生成する正方形です。
magic() 関数は魔方陣配列を作成します。正方形のサイズを与える特異な引数を取ります。引数は 3 以上のスカラーでなければなりません。
ライブデモmagic(4)
MATLAB は上記のステートメントを実行し、次の結果を返します −
ans = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1
多次元配列
2 次元を超える配列は、MATLAB では多次元配列と呼ばれます。 MATLAB の多次元配列は、通常の 2 次元行列を拡張したものです。
通常、多次元配列を生成するには、まず 2 次元配列を作成し、それを拡張します。
たとえば、2 次元配列 a を作成してみましょう。
ライブデモa = [7 9 5; 6 1 9; 4 3 2]
MATLAB は上記のステートメントを実行し、次の結果を返します −
a = 7 9 5 6 1 9 4 3 2
配列 a 3 行 3 列の配列です。 a に 3 番目の次元を追加できます 、次のような値を提供することにより-
ライブデモa(:, :, 2)= [ 1 2 3; 4 5 6; 7 8 9]
MATLAB は上記のステートメントを実行し、次の結果を返します −
a = ans(:,:,1) = 0 0 0 0 0 0 0 0 0 ans(:,:,2) = 1 2 3 4 5 6 7 8 9
ones()、zeros()、または rand() 関数を使用して、多次元配列を作成することもできます。
たとえば、
ライブデモb = rand(4,3,2)
MATLAB は上記のステートメントを実行し、次の結果を返します −
b(:,:,1) = 0.0344 0.7952 0.6463 0.4387 0.1869 0.7094 0.3816 0.4898 0.7547 0.7655 0.4456 0.2760 b(:,:,2) = 0.6797 0.4984 0.2238 0.6551 0.9597 0.7513 0.1626 0.3404 0.2551 0.1190 0.5853 0.5060
cat() も使用できます 多次元配列を構築する関数。指定された次元に沿って配列のリストを連結します −
cat() 関数の構文は −
B = cat(dim, A1, A2...)
どこで、
- <リ>
B 作成された新しい配列です
<リ>A1 、A2 , ... は連結する配列です
<リ>暗い 配列を連結する次元です
例
スクリプト ファイルを作成し、次のコードを入力します −
ライブデモa = [9 8 7; 6 5 4; 3 2 1]; b = [1 2 3; 4 5 6; 7 8 9]; c = cat(3, a, b, [ 2 3 1; 4 7 8; 3 9 0])
ファイルを実行すると、表示されます-
c(:,:,1) = 9 8 7 6 5 4 3 2 1 c(:,:,2) = 1 2 3 4 5 6 7 8 9 c(:,:,3) = 2 3 1 4 7 8 3 9 0
配列関数
MATLAB は、配列の内容を並べ替え、回転、並べ替え、形状変更、またはシフトする次の関数を提供します。
機能 | 目的 |
---|---|
長さ | ベクトルまたは配列の最大次元の長さ |
ndims | 配列の次元数 |
numel | 配列要素の数 |
サイズ | 配列の次元 |
列 | 入力が列ベクトルかどうかを判断します |
isempty | 配列が空かどうかを判断します |
ismatrix | 入力が行列かどうかを判断します |
行 | 入力が行ベクトルかどうかを判断します |
イスカラー | 入力がスカラーかどうかを判断します |
ベクトルです | 入力がベクトルかどうかを判断します |
blkdiag | 入力引数からブロック対角行列を構築 |
サーシフト | 配列を循環的にシフトします |
ctranspose | 複素共役転置 |
診断 | 対角行列と行列の対角 |
フリップディム | 指定された次元に沿って配列を反転 |
fliplr | 行列を左から右に反転 |
フリップ | 行列を上下に反転 |
ipermute | N 次元配列の次元を逆順列 |
並べ替える | N 次元配列の次元を再配置します |
repmat | レプリケートとタイル配列 |
形を変える | 配列を変形 |
rot90 | 行列を 90 度回転 |
shiftdim | 次元をシフト |
ソート済み | セット要素がソートされているかどうかを判断します |
並べ替え | 配列要素を昇順または降順で並べ替えます |
行の並べ替え | 行を昇順に並べ替えます |
スクイーズ | 単一次元を削除 |
移調 | 転置 |
ベクトル化 | 式をベクトル化 |
例
次の例は、上記の関数の一部を示しています。
長さ、寸法、要素数 −
スクリプト ファイルを作成し、次のコードを入力します −
ライブデモx = [7.1, 3.4, 7.2, 28/4, 3.6, 17, 9.4, 8.9]; length(x) % length of x vector y = rand(3, 4, 5, 2); ndims(y) % no of dimensions in array y s = ['Zara', 'Nuha', 'Shamim', 'Riz', 'Shadab']; numel(s) % no of elements in s
ファイルを実行すると、次の結果が表示されます-
ans = 8 ans = 4 ans = 23
配列要素の循環シフト -
スクリプト ファイルを作成し、次のコードを入力します −
ライブデモa = [1 2 3; 4 5 6; 7 8 9] % the original array a b = circshift(a,1) % circular shift first dimension values down by 1. c = circshift(a,[1 -1]) % circular shift first dimension values % down by 1 % and second dimension values to the left % by 1.
ファイルを実行すると、次の結果が表示されます-
a = 1 2 3 4 5 6 7 8 9 b = 7 8 9 1 2 3 4 5 6 c = 8 9 7 2 3 1 5 6 4
配列のソート
スクリプト ファイルを作成し、次のコードを入力します −
ライブデモv = [ 23 45 12 9 5 0 19 17] % horizontal vector sort(v) % sorting v m = [2 6 4; 5 3 9; 2 0 1] % two dimensional array sort(m, 1) % sorting m along the row sort(m, 2) % sorting m along the column
ファイルを実行すると、次の結果が表示されます-
v = 23 45 12 9 5 0 19 17 ans = 0 5 9 12 17 19 23 45 m = 2 6 4 5 3 9 2 0 1 ans = 2 0 1 2 3 4 5 6 9 ans = 2 4 6 3 5 9 0 1 2
セル配列
セル配列は、各セルが異なる次元とデータ型の配列を格納できるインデックス付きセルの配列です。
セル 関数は、セル配列を作成するために使用されます。セル関数の構文は −
C = cell(dim) C = cell(dim1,...,dimN) D = cell(obj)
どこで
- <リ>
- Java 配列またはオブジェクト
- System.String または System.Object 型の .NET 配列
C セル配列です。
<リ>暗い cell 配列 C の次元を指定するスカラー整数または整数のベクトルです。
<リ>dim1, ... , dimN C の次元を指定するスカラー整数です。
<リ>オブジェクト 次のいずれかです −
例
スクリプト ファイルを作成し、次のコードを入力します −
ライブデモc = cell(2, 5); c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5}
ファイルを実行すると、次の結果が表示されます-
c = { [1,1] = Red [2,1] = 1 [1,2] = Blue [2,2] = 2 [1,3] = Green [2,3] = 3 [1,4] = Yellow [2,4] = 4 [1,5] = White [2,5] = 5 }
セル配列内のデータへのアクセス
セル配列の要素を参照するには 2 つの方法があります −
- 最初のブラケット () でインデックスを囲み、セルのセットを参照します
- インデックスを中かっこ {} で囲み、個々のセル内のデータを参照します
最初のブラケットでインデックスを囲むと、セルのセットを参照します。
かっこ内のセル配列インデックスは、セルのセットを参照します。
たとえば-
ライブデモc = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5}; c(1:2,1:2)
MATLAB は上記のステートメントを実行し、次の結果を返します −
ans = { [1,1] = Red [2,1] = 1 [1,2] = Blue [2,2] = 2 }
中かっこでインデックスを付けることで、セルの内容にアクセスすることもできます。
たとえば-
ライブデモc = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5}; c{1, 2:4}
MATLAB は上記のステートメントを実行し、次の結果を返します −
ans = Blue ans = Green ans = Yellow
MATLAB