BigMatrix
クラスには、通常の 4x3 Matrix3 クラスが適切でない状況や計算のために MxN 行列が実装されています。
BigMatrixRowArray
クラスには、N 要素のベクトルが実装されています。
BigMatrix 値の各行は BigMatrixRowArray
値に相当します。
BigMatrixRowArray
の要素には、浮動小数点値だけを保存できます。
BigMatrix
と BigMatrixRowArray
の両方の値を強制的に文字列に設定できますが、PrintAllElements コンテキストがオフの場合は、文字列が最初の 20 項目に切り捨てられます。コンストラクタ:
BigMatrix <rows> <columns>
BigMatrix 値を指定の数の行と列で構成します。
最初はすべての要素が 0.0 値になります。
プロパティ
<BigMatrix>.rows: Integer, read-only
<BigMatrix>.columns: Integer, read-only
BigMatrix 値の行と列の数を取得します。
演算子
<BigMatrix> + <BigMatrix>
2 つの BigMatrix 値を一緒に追加します。
両方の BigMatrix 値は同じサイズでなければなりません。
<BigMatrix>[<int_row>]
インデックスで指定された行の BigMatrixRowArray 値を返します。 この値は BigMatrix から独立していないため、次のようになります。
bm = BigMatrix 3 3
row1 = bm[1]
row1[1]=2.0
bm
--> #BigMatrix(
[2.00,0.00,0.00],
[0.00,0.00,0.00],
[0.00,0.00,0.00]
)
<BigMatrix>[<int_row>]= <float_array>
指定したインデックスの BixMatrixRowArray の値を、指定した float 配列に設定します。配列の要素の数が行と同じである必要はありません。配列の要素の方が少ない場合、対応する要素は行で設定されます。要素が複数ある場合は、最初の n 個の要素がコピーされます。n は BixMatrixRowArray のサイズです。 3ds Max 2021.1 Update 以降で使用可能です。
<BigMatrixRowArray>[<int_column>]
BigMatrixRowArray 値に格納されたインデックスで指定された列の浮動小数点値を返します。
<BigMatrixRowArray>[<int_column>]= <float_value>
BigMatrixRowArray 値のインデックスで指定された列に値を設定します。
アクセサ自体がオペランドなので、これらの定義は再帰的です。つまり、次のように複数のアクセサを結ぶことができます。
<BigMatrix>[<int_row>][<int_column>]
インデックスで指定された行と列の浮動小数点値を返します。
<BigMatrix>[<int_row>][<int_column>]= <float_value>
行列にインデックスで指定された行と列の浮動小数点値を設定します。
メソッド
invert <BigMatrix>
行列の位置を反転します(入力 BigMatrixf が修正されます)。
戻り値もまた反転した行列となります。
このメソッドは、行列が「正方形」の場合 (m と n が等しい場合) だけ作用するので注意してください。
transpose <BigMatrix>
<BigMatrix>
の転置を返します(結果 BigMatrix\[i\]\[j\]
= BigMatrix\[j\]\[i\]
)。
clear <BigMatrix>
要素をすべて解放し、行列のサイズを 0 x 0 に設定します。
setSize <BigMatrix> <rows> <columns>
現在の要素を削除して、行列のサイズを <rows>
x <columns>
に設定します。
identity <BigMatrix> -- mapped function
行と列の数が等しくない場合、このメソッドは何も実行しません。
行と列の数が等しい場合は、このメソッドは行列を単位行列(斜めの要素が 1、その他の要素は 0)に設定します。
パラメータが行列の配列の場合、この関数は OK
を返します。
上記 2 つのどちらの場合でも、入力 BigMatrix 値は単位行列に設定されます。
BigMatrix オブジェクトは、配列中の配列に似た複合オブジェクトです。BigMatrix メソッドはすべて、入力 BigMatrix のコンポーネントを直接操作します。「参照代入」で説明されているように、これは BigMatrix オブジェクトが複数の変数によって参照されている場合に問題の原因となります。行列の要素に新しい値を割り当てる場合、あるいはいずれかの BigMatrix メソッドを使用する場合、同じオブジェクトが変数によって参照されます。
次に例を示します。
スクリプト:
bm1=bigmatrix 2 2 for i=1 to 2 do for j=1 to 2 do bm1[i][j]=random 0 10 bm2=bm1 invert bm1 bm2
出力:
#BigMatrix( --result of line 1, contents of bm1 [0.00,0.00], [0.00,0.00] ) OK -- result of line 2 #BigMatrix( --result of line 3, contents of bm2 [4.00,6.00], [4.00,9.00] ) #BigMatrix( --result of line 4, contents of bm1 [0.75,-0.50], [-0.33,0.33] ) #BigMatrix( --result of line 5, contents of bm2 [0.75,-0.50], [-0.33,0.33] )