工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> MATLAB

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...)

どこで、

スクリプト ファイルを作成し、次のコードを入力します −

ライブデモ
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)

どこで

スクリプト ファイルを作成し、次のコードを入力します −

ライブデモ
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

  1. C# 配列
  2. C# ジャグ配列
  3. Java コピー配列
  4. C++ の配列 |宣言する |初期化 |配列へのポインタの例
  5. 例による配列の C++ 動的割り当て
  6. MATLAB-概要
  7. MATLAB-変数
  8. MATLAB-コマンド
  9. MATLAB - 行列
  10. MATLAB-数値
  11. MATLAB-文字列