2

OPL スクリプト (execute{} ブロック) でマトリックスを初期化しようとしています。各要素は浮動小数点乗数 (> 0) に設定する必要があります。{}

pow 関数はスクリプトで認識されないため、^ 演算子を試しました... しかし、期待したものではありません: リファレンスには、「^ は OPL では power を意味し、スクリプトではビットごとの xor を意味します」と書かれています。

したがって、今のところ、機能するが浮動小数点数を受け入れない for() ループを使用しました。

var temp;
for (var p = 1; p<=nbP; p++){
   for (var n = 1; n <= nbC; n++){
       temp = w[n][p] / i[p];
       MATRIX[n][p] = 1;
       for (var i = 1; i <= desiredPower; i++){
          MATRIX[n][p] = tempNGSI * MATRIX[n][p];
       }   
   }           
}

OPL スクリプトの pow() に相当するものはありますか? 他にどうすればいいですか?for() ブロックはスクリプト ブロックの外では認識されないことに注意してください (execute{})

4

1 に答える 1

2

OPL スクリプト (従兄弟の JavaScript と同様) には、Math オブジェクトにラップされた基本的な数学関数があります。

for (var p = 1; p<=nbP; p++){
   for (var n = 1; n <= nbC; n++){
       MATRIX[n][p] = Math.pow(w[n][p] / i[p], desiredPower);
   }           
}
于 2014-07-17T16:31:56.863 に答える