配列
- 更新日2025-08-27
- 10分で読める
配列は要素と次元で構成されます。要素は配列を構成するデータです。次元とは、配列の長さ、高さ、もしくは奥行きです。配列には1次元以上の次元があり、メモリが許す限り1次元あたり (231) -1の要素を持つことができます。
数値、ブール値、パス、文字列、波形、およびクラスタデータタイプの配列を作成できます。同じタイプのデータの集合を処理する場合や同じ演算を繰り返し行う場合は、配列を使用することを検討してください。配列は、波形から収集したデータや、ループで生成されたデータ (各ループの反復で配列の要素が1つずつ生成されます) を格納するのに適しています。配列データは、Microsoft Excelなどにエクスポートできます。配列を右クリックし、ショートカットメニューからエクスポートを選択すると、選択可能なエクスポートオプションが表示されます。
制約事項
配列の配列は作成できません。ただし、多次元配列を使用するか、各クラスが1つまたは複数の配列を含むクラスタの配列を作成することはできます。また、サブパネル制御器、タブ制御器、.NETコントロール、ActiveXコントロール、チャート、複数プロットXYグラフ、複数列リストボックスの配列を作成することもできません。
指標
配列内の特定の要素を見つけるには、次元ごとに1つの指標が必要です。LabVIEWでは、指標を使用すると、配列内を移動してブロックダイアグラム上の配列から要素、行、列およびページを参照できます。
配列の例
簡単な配列の例としては、太陽系の8つの惑星をリストしたテキストの配列があります。LabVIEWは、これを8つの要素を持つ文字列の1D配列として表現します。
配列の要素には順番が付けられています。配列の指標を使用して、特定の要素にすばやくアクセスできます。指標は0から始まります。つまり、指標は0~n – 1の範囲になります。ここで、nは配列内の要素の数です。8つの惑星の例ではn = 8で、指標は0~7の範囲になります。地球は3番目の惑星なので、指標は2になります。
以下の図のように、配列のもう1つの例として、各連続要素が連続した時間間隔の電圧値を表す数値配列として表現された波形があります。
以下の図のように、より複雑な配列の例として点の配列として表現されたグラフがありますが、ここで各点はXおよびY座標を表す2つの数値を含むクラスタになっています。
前の例は1D配列を使用しています。2D配列は要素をグリッドに保存します。要素を特定するには (0から始まる) 列指標と行指標が必要です。以下の図は、8列×8行の2D配列を示しており、8 x 8 = 64の要素を含んでいます。
たとえば、チェス盤には8列×8行の総計64の位置があります。各位置は空かチェスの駒が1つあるかのどちらかです。チェス盤は文字列の2D配列として表現できます。各文字列は、盤上の対応する位置に置かれた駒の名前か、またはその場所に駒がない場合は空の文字列です。
配列に行を追加することによって1D配列の例を2次元に一般化できます。以下の図は、数値の2D配列として表現された波形の集合を示しています。行指標で波形を選択し、列指標で波形上の点を選択します。
配列を使用するサンプルについては、labview\examples\Arrays\Arrays.lvprojを参照してください。関連サンプルを検索
配列制御器、表示器、および定数を作成する
以下のフロントパネルに示すとおり、フロントパネルに配列シェルを追加し、データオブジェクトまたは要素 (数値、ブール値、文字列、パス、Refnum、またはクラスタの制御器または表示器) を配列シェル内にドラッグして、フロントパネルに配列制御器または表示器を作成します。
新規のオブジェクトに合わせて、配列シェルは自動的にサイズを変更します。
ブロックダイアグラム上に配列定数を作成するには、関数パレットで配列定数を選択して、配列シェルをブロックダイアグラムに配置し、次に文字列定数、数値定数、ブール定数、またはクラスタ定数を配列シェル内に配置します。配列定数を使用すると、定数データを保存するか、または他の配列と比較する基準として保存できます。
多次元配列を作成する
フロントパネルに多次元配列を追加するには、指標表示を右クリックして、ショートカットメニューから次元を追加を選択します。目的の次元数になるまで、指標表示のサイズを変更することができます。次元を1つずつ削除するには、指標表示を右クリックし、ショートカットメニューから次元を削除を選択します。また、指標表示のサイズを変更して、次元を削除することもできます。
フロントパネル上に特定の要素を表示するには、指標表示に指標番号を入力するか、指標表示上の矢印を使用して、該当する番号に移動します。
たとえば、2D配列には行と列があります。以下のフロントパネルに示すとおり、左側の2つのボックスの上の表示が行指標で、下の表示が列指標です。行と列の表示の右側にある表示は、指定された位置の値を示します。以下のフロントパネルのとおり、6行目および13列目の値が66であることを示しています。
| 1 | 行指標 |
| 2 | 列指標 |
| 3 | 行、列での値 |
行と列は0から始まり、1番目の列は0、2番目の列は1、以下同様に続きます。以下の配列の指標表示を行1および列2に変更すると、値6が表示されます。
| 0 | 1 | 2 | 3 |
| 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 |
配列次元の範囲を外れた列や行を表示しようとすると、配列制御器は淡色表示され、定義された値がないことを示し、データタイプのデフォルト値が表示されます。データタイプのデフォルト値は配列のデータタイプによって異なります。
一度に複数の行または列を示すには、位置決めツールを使用して配列をサイズ変更します。
また、配列のスクロールバーを使用して、特定の要素に移動することもできます。配列を右クリックし、ショートカットメニューから表示項目»垂直スクロールバーまたは表示項目»水平スクロールバーを選択して、配列のスクロールバーを表示します。
| メモ LabVIEWの配列関数は行優先順で配列データにアクセスします。2D配列で、行は最初のメジャー指標です。列は最後のマイナー指標です。より大きい多元配列では、列は最後の指標として残り、よりメジャーな指標は先頭に追加されます。したがって、最初の指標はvolで、次にページ、行、列と続きます。これらの名前は指標識別子で、それ以外の意味はありません。 |
配列関数
配列を作成して操作するには、「配列」関数を使用します。たとえば、以下のようなタスクを実行できます。
- 配列から個々のデータ要素を抽出する。
- 配列内のデータ要素を挿入、削除、または置換する。
- 配列を分割する。
「配列連結追加」関数を使用してプログラム的に配列を作成できます。また、ループを使用して配列を作成することもできます。
配列関数をループで使用する際のメモリ使用量を最小化する方法のヒントについては、「LabVIEWスタイルチェックリスト」を参照してください。
配列関数を自動的にサイズ変更する
「指標配列」関数、「部分配列置換」関数、「配列要素挿入」関数、「配列から削除」関数、および「部分配列」関数は、配線する入力配列の次元に一致させるため、サイズを自動変更することができます。たとえば、1D配列をこれらの関数の1つに配線すると、その関数は1つの指標入力を示します。2D配列を同じ関数に配線すると、その関数は、行と列に対してそれぞれ1つずつ、合計2つの指標入力を表示します。
位置決めツールを使用して、手動で関数をサイズ変更することにより、これらの関数で複数の要素、つまり部分配列 (行、列、またはページ) にアクセスすることができます。これらの関数の1つを拡張する際は、その関数に配線された配列の次元によって決められた増分だけ拡張します。1D配列をこれらの関数の1つに配線すると、この関数は1つの指標入力分ずつ拡張します。2D配列を同じ関数に配線すると、関数は、行と列にそれぞれ1つずつ、合計2つの指標入力ずつ拡張します。
配線する指標入力によって、アクセスまたは変更する部分配列の形状が決まります。たとえば、「指標配列」関数への入力が2D配列であり、行入力にのみ配線した場合、配列の1Dの行がすべて抽出されます。列入力にのみ配線すると、配列の1Dの列をすべて抽出します。行入力と列入力を配線した場合は、配列の1つの要素が抽出されます。入力グループはそれぞれ独立しており、配列のすべての次元のどの部分にもアクセスできます。
以下のブロックダイアグラムに示すとおり、「指標配列」関数を使用して2D配列から行と要素を取り出します。
配列内の複数の連続した値にアクセスするには、「指標配列」関数を拡張します。ただし、増分ごとに値を指標入力に配線しないでください。たとえば、2D配列から1番目、2番目、および3番目の行を取り出すには、「指標配列」関数を3回の増加で拡張し、1D配列表示器を各部分配列出力に配線します。
配列のデフォルトデータ
配列の境界を越えて指標付けすると、配列要素パラメータのデフォルト値が生成されます。配列のサイズを調べるには、「配列サイズ」関数を使用します。
Whileループを使用して最後の要素を超えて配列を指標付けしたり、「指標配列」関数の指標入力に大きすぎる値を入力したり、「指標配列」関数に空の配列を指定すると、誤って配列の範囲を超えて指標付けする可能性があります。