外部インタフェース/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配列の結合 | ![]() |