我用过这段代码:
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)对应于数组中的一个切片(mxn)。所以需要重塑数据。
这部分是问题:
X = X.Reshape(2,5);
Y = Y.Reshape(2,5);
Z = Z.Reshape(2,5);
如果我没有给出正确的大小,程序就会失败,所以在示例中我在每个向量上有 10 个元素,所以在重新分析时我会放 2,5,乘以 10?...
如果我有 11 个元素,如果我把 2,5 放在 reshape 上我得到错误怎么办?
该怎么办?
我试过使用X = X.Reshape(11);
但它失败了......如果我使用X = X.Reshape(10);
它就不要画任何东西