0

我正在使用 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);
     }

姓名 ; 价值 ; 类型

资源;{对象[1]};对象{对象[]}
[0] ; {双[450,600]};对象{双 [,]}

现在我想将 object{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];
4

1 回答 1

1

你应该type-cast这样做。

如果我正确理解了您的问题,那么您可以将某些东西从对象转换为整数数组。

尝试这样的事情:

        var objectArray  = obj.edge_dll(1, array, .5);

        for (var index = 0; index <= objectArray.Count(); index++)
        {
            anIntegerArray[index] = (int) objectArray[index];
        }
于 2013-10-01T05:27:57.780 回答