【解決方法】いくつかの計算で配列を埋める


したがって、初期化子内にいくつかの計算を含む値の配列があります。 除算を行うだけですべて問題ありませんが、乗算と加算を追加するとすぐに反転がうまくいきません。

C#
double x1 = 342523d / 518400d;
double[,] cornerD1 = new double[] {
    { -21600d / 13649d, (43200d / 13649d * x1 - 7624d / 40947d), -172800d / 13649d * x1 + 715489d/ 81894d, 259200d / 13649d * x1 - 187917d / 13649d, -172800d / 13649d * x1 + 735635d / 81894d, 43200d / 13649d * x1 - 89387d / 40947d, 0d, 0d, 0d },
{ -8640d / 12013d * x1 + 7624d / 180195d, 0d, 86400d / 12013d * x1 - 57139d / 12013d, -172800d / 12013d * x1 + 745733d / 72078d, 129600d / 12013d * x1 - 91715d / 12013d, -34560d / 12013d * x1 + 240569d / 120130d, 0d, 0d, 0d},
{ 17280d / 2711d * x1 - 715489d / 162660d, -43200d / 2711d * x1 + 57139d / 5422d, 0,86400d / 2711d * x1 - 176839d / 8133d, -86400d / 2711d * x1 + 242111d / 10844d, 25920d / 2711d * x1 - 182261d / 27110d, 0d, 0d, 0d},
{ -25920d / 5359d * x1 + 187917d / 53590d, 86400d / 5359d * x1 - 745733d / 64308d, -86400d / 5359d * x1 + 176839d / 16077d, 0d, 43200d / 5359d * x1 - 165041d / 32154d, -17280d / 5359d * x1 + 710473d / 321540d, 72d / 5359d, 0d, 0d},
{ 34560d / 7877d * x1 - 147127d / 47262d, -129600d / 7877d * x1 + 91715d / 7877d, 172800d / 7877d * x1 - 242111d / 15754d, -86400d / 7877d * x1 + 165041d / 23631d, 0d, 8640d / 7877d * x1, -1296d / 7877d, 144d / 7877d, 0d},
{ -43200d / 43801d * x1 + 89387d / 131403d, 172800d / 43801d * x1 - 240569d / 87602d, -259200d / 43801d * x1 + 182261d / 43801d,172800d / 43801d * x1 - 710473d / 262806d, -43200d / 43801d * x1, 0, 32400d / 43801d, -6480d / 43801d,720d / 43801d} };

私が試したこと:

計算後に各要素を設定する必要はありますか? 他に方法はありませんか?

これが可能であれば、コードは Octave から移植されます。

解決策 1

間違ったタイプ:

C#
double[,] cornerD1 = new double[] { ...

する必要があります

C#
double[,] cornerD1 = new double[,] { ...
                                ^
                                |

余分な次元がないと、何をしようとしているのかわからなくなり、初期化子でエラーが発生します。

コメント

タイトルとURLをコピーしました