| 外部インタフェース/API | ![]() |
Java配列の割り当て
MATLAB配列で行うのと本質的に同じ方法でJava配列のオブジェクトに値を割り当てます。JavaおよびMATLAB配列は、全く異なる構造ですが、同じコマンドシンタックスを使って割り当てたい要素を指定します、JavaとMATLAB配列の違いに関する情報は、「Java配列の表現方法」を参照してください。
つぎの例は、行3、列2のdblArrayの要素に値300を割り当てます。Javaでは、これはdblArray[2][1]です。
dblArray(3,2) = java.lang.Double(300)
dblArray =
java.lang.Double[][]:
[11] [ 12] [13] [14] [15]
[21] [ 22] [23] [24] [25]
[31] [300] [33] [34] [35]
[41] [ 42] [43] [44] [45]
同じシンタックスを使ってオブジェクトのデータフィールドの要素に割り当てます。「Java配列の要素へのアクセス」のmyMenuObjの例に続けて、つぎのようにmenuItemArrayの3番目のメニューアイテムに割り当てます。
myMenuObj.menuItemArray(3) = java.lang.String('Save As...');
単一のサブスクリプトインデックスを使った配列の割り当て
単一の配列サブスクリプトを使って、2次元以上のJava構造体にインデックスを付けることができます。Java配列で利用したこの機能の説明は、「単一のサブスクリプトインデックスを使った配列のアクセス」を参照してください。
単一のサブスクリプトインデックスを使って配列にも値を割り当てることが可能です。下記の例は、1次元Java配列onedimArrayを2次元Java配列dblArrayの行に割り当てます。1次元配列を作成することから始めます。
onedimArray = javaArray('java.lang.Double', 5);
for i = 1:5
onedimArray(i) = java.lang.Double(100 * i);
end
dblArray(3)は、dblArrayの3行目に表示された5行1列配列を参照するので、同様の次元の5行1列のonedimArrayを割り当てることができます。
dblArray(3) = onedimArray
dblArray =
java.lang.Double[][]:
[ 11] [ 12] [ 13] [ 14] [ 15]
[ 21] [ 22] [ 23] [ 24] [ 25]
[100] [200] [300] [400] [500]
[ 41] [ 42] [ 43] [ 44] [ 45]
線形配列の割り当て
配列構造を単一の線形配列のように扱うことによって、多次元Java配列の各要素に値を割り当てることができます。これは、MATLABのコロン演算子を使った単一の数値サブスクリプトの置き換えを伴います。dblArray配列から始める場合、つぎのステートメントを使って、2次元配列の各オブジェクトの内容を初期化することができます。
dblArray(:) = java.lang.Double(0)
dblArray =
java.lang.Double[][]:
[0] [0] [0] [0] [0]
[0] [0] [0] [0] [0]
[0] [0] [0] [0] [0]
[0] [0] [0] [0] [0]
MATLAB配列の操作と同様にMATLABコロン演算子を使うことができます。下記のステートメントは、与えられた値をjava配列dblArrayの4つの行の各々に割り当てます(各行は、実際には別々のJava配列を現すことに注意してください)。
dblArray(1,:) = java.lang.Double(125);
dblArray(2,:) = java.lang.Double(250);
dblArray(3,:) = java.lang.Double(375);
dblArray(4,:) = java.lang.Double(500)
dblArray =
java.lang.Double[][]:
[125] [125] [125] [125] [125]
[250] [250] [250] [250] [250]
[375] [375] [375] [375] [375]
[500] [500] [500] [500] [500]
空行列の割り当て
MATLAB配列の操作時に、空行列([])で表わされる0行0列配列)を配列の要素に割り当てることができます。Java配列に対しては、配列要素に[]を割り当てることも可能です。これは、0行0列配列ではなくNULL値をJava配列要素に格納します。
サブスクリプトによる削除
MATLABの行全体あるいは列全体に空行列を割り当てるとき、MATLABは、実際は配列から影響される行あるいは列を削除します。下記の例では、空行列はMATLAB行列matlabArrayの4列目のすべての要素に割り当てられます。そのため、4列目は、行列から完全に削除されます。これは、4行5列から4行4列に次元を変更します。
matlabArray = [11 12 13 14 15; 21 22 23 24 25; ...
31 32 33 34 35; 41 42 43 44 45]
matlabArray =
11 12 13 14 15
21 22 23 24 25
31 32 33 34 35
41 42 43 44 45
matlabArray(:,4) = []
matlabArray =
11 12 13 15
21 22 23 25
31 32 33 35
41 42 43 45
Java配列に空行列を割り当てることは可能ですが、影響は異なります。つぎの例は、同じ演算をJava配列に対して行ったときに、構造が壊れないことを示しています。4行5列の次元を保持します。
dblArray(:,4) = []
dblArray =
java.lang.Double[][]:
[125] [125] [125] [] [125]
[250] [250] [250] [] [250]
[375] [375] [375] [] [375]
[500] [500] [500] [] [500]
dblArrayデータ構造体は、実際はjava.lang.Doubleオブジェクトの5要素配列の配列です。空配列の割り当てで、低レベル配列の4番目の要素にNULL値を配置します。
| Java配列の要素へのアクセス | Java配列の結合 | ![]() |