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 に答える