私はこのコードを使用しました:
private void ilPanel1_Load(object sender, EventArgs e)
{ using (ILScope.Enter())
{
ILArray<float> X = new float[] { 0, 0, 1, 1, 2.5F, -2.6F, 5, 9, 1, 38 };
ILArray<float> Y = new float[] { 1, 0, 1, 0, 1.5F, 0.5F, 5, 9, 1, 39 };
ILArray<float> Z = new float[] { 0, 0, 1, 1, 0.4F, -0.2F, 5, 9, 1, 39 };
X = X.Reshape(2,5);
Y = Y.Reshape(2,5);
Z = Z.Reshape(2,5);
ilPanel1.Scene.Add(new ILPlotCube(twoDMode: false) {
new ILSurface(Z, colormap: Colormaps.Cool) {
Colors = 1.4f ,Children = { new ILColorbar() }
}
});
}
}
これにより、次が生成されます。
ただし、この質問を確認し、非推奨の ILnumerics ソリューションを適応させようとしました(他の c# コードが見つからなかったため) が、それでも取得できません。すべての座標 (Z、X、および Y) が配列内の 1 つのスライス (mxn) に対応します。したがって、データを再形成する必要があります。
この部分が問題です:
X = X.Reshape(2,5);
Y = Y.Reshape(2,5);
Z = Z.Reshape(2,5);
正しいサイズを指定しないと、プログラムが失敗するため、例では各ベクトルに 10 個の要素があるため、再編集するときに 2,5 を掛けると 10 になりますか? ...
reshape に 2,5 を入れた場合のように 11 個の要素があり、エラーが発生する場合はどうなりますか?
何をすべきか?
使用してみX = X.Reshape(11);
ましたが失敗します...使用するX = X.Reshape(10);
と何も描画されません