2014-09-24 108 views
-1

我正在做Java和Android API中的babysteps。目前,我坚持使用SensorManager.getRotationMatrix检索平台方向矩阵,因为我的数据是float[][],而函数期望float[]在Java中,我该如何声明矩阵(正确)?如何将矩阵传递给需要向量的函数?

float [] [] R, I = // { { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } } ; 
     new float [3] [3]; 
float [] gravity, geomagnetic = new float [3]; 

manager.getRotationMatrix(R, I, gravity, geomagnetic); 

同样,相同的类void getRotationMatrixFromVector (float[] R, float[] rotationVector)的另一种方法再次期望float[]R显然应该是float[][]。我是否错过了一些技巧,允许在没有展开矩阵的情况下进行矢量化?请指教。

+0

当我与传感器工作时,我宣布R和我喜欢 float R [] = new float [9]; float I [] = new float [9]; 没有2维矩阵 – Slampy 2014-09-24 08:12:50

回答

0

如果你想扁平2d阵列,那么你可以迭代它并将其添加到ArrayList。然后你可以使用toArray()ArrayList获得一个数组。

其他选项是将2d数组中的行数和列数相乘以查找元素数,然后遍历2d数组以填充1d数组中的数据。