我使用的是MATLAB dll。它将矩阵作为int [,]类型作为输入,输出类型为:object {double [,]}
private void pic_edges(int[,] array)
{
Class1 obj = new Class1();
object res = null;
res = obj.edge_dll(1, array, .5);
}
名字;价值;型
res; {object [1]};对象{对象[]}
[0]; {double [450,600]};对象{双[,]}
现在我想将对象{double [,]}更改为int [,]或double [,]。但是如何???
int[,] pic=null;
double[,] pic2=nu1l;
编辑:
我使用了以下代码:(感谢'现在他不能被命名')
var objectArray = obj.edge_dll(1, array, .5);
double[,] pic3 = (double[,]) objectArray[0];
并正确转换。
现在如何将double [,]转换为int [,]
我使用了这段代码:(但有没有更好的方法?)
int[,] pic4 =new int[pic3.GetLength(0),pic3.GetLength(1)];
for (var i = 0; i < pic3.GetLength(0); i++)
for (var j = 0; j < pic3.GetLength(1); j++)
pic4[i, j] = (int)pic3[i, j];
答案 0 :(得分:1)
你应该type-cast
。
如果我正确理解你的问题,你可以从一个对象转换为整数数组。
尝试这样的事情:
var objectArray = obj.edge_dll(1, array, .5);
for (var index = 0; index <= objectArray.Count(); index++)
{
anIntegerArray[index] = (int) objectArray[index];
}