在C#.net中将对象{double [,]}转换为double [,]或int [,]

时间:2013-10-01 05:17:23

标签: c# matlab object

我使用的是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];

1 个答案:

答案 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];
        }