通过创建java double[]数组,将double的java.util.ArrayList转换为Matlab数组

通过创建java double[]数组,将double的java.util.ArrayList转换为Matlab数组,java,arrays,matlab,Java,Arrays,Matlab,我有一个com.mongodb.basicdbliblist,我需要将其转换为Matlab数组。下面的代码是在Matlab中完成的,并显示了类型。arr中的所有元素都属于同一类型 >> whos arr Name Size Bytes Class Attributes arr 1x1 com.mongodb.BasicDBList

我有一个
com.mongodb.basicdbliblist
,我需要将其转换为Matlab数组。下面的代码是在Matlab中完成的,并显示了类型。
arr
中的所有元素都属于同一类型

>> whos arr
  Name      Size            Bytes  Class                      Attributes

  arr       1x1                    com.mongodb.BasicDBList              

>> arr.size()
ans =

   304
>> v = arr.get(0);
>> whos v
  Name      Size            Bytes  Class     Attributes

  v         1x1                 8  double    
我找到了几种方法:

2号单元格(到达阵列单元格)

或:

这一秒快了一个数量级。它创建了一个双[]数组。不幸的是,Matlab不会自动将其视为双精度,因此我需要将其转换为原始双精度

双人(纽瓦尔)

这抵消了与第一种方法相比,通过这种方法获得的任何速度增益

如果可以在Matlab中创建一个java
double[]
,它将解决我的问题。我尝试了以下方法,但由于
double
是一种基本类型,因此没有与之关联的类,因此给了我一个错误

newArr = javaArray('double', arr.size);
arr.toArray(newArr);

是否有一种方法可以在matlab中创建java Double数组。java代码类似于
double[]arr=newdouble[x]

“接收一个双精度的java.util.ArrayList(原语,而不是双精度)”--这是不可能的,正如您所说的那样。请澄清。它以
com.mongodb.BasicDBList
的形式出现,扩展了
ArrayList
。列表中的所有元素的类型均为
double
。您可以在这里看到:有关
BasicDBList
的更多信息。这可能吗?这扩展了
ArrayList
,所以一定有一些包装类保存了这些值。我所做的一切都是在Matlab中进行的,我明白你的意思,并且同意这有点奇怪,但是如果
arr
com.mongodb.BasicDBList
并且我做
arr.get(0)
Matlab返回一个
double
,而不是
对象
。还有别的办法可以查吗?我对Java不是很熟练。我敢说它实际上是作为
ArrayList
实现的,因为它的内容可以更好地表示为
double
newArr = javaArray('double', arr.size);
arr.toArray(newArr);