我必须在Matlab中将类型为131072x1 int32
的矩阵中的数据转换为Java List<Integer>
。到目前为止,我提出的唯一工作转换是滚动这些值并直接将它们添加到LinkedList。快速Matlab矩阵到Java列表转换
count = size(data_flattened, 1);
ll = java.util.LinkedList;
for i = 1:count
ll.add(data_flattened(i));
end
这是在极端(5秒)缓慢。我已经尝试了几种公式转换为Java数组,然后到List
,但我总是以1列和131072行的数组结束。
我需要一种快速分配int32s的N×1的Matlab矩阵到Java List<Integer>
类型的方法。
我引用Matlab的文档“对象 的传递数组要调用带有参数的方法定义的Java .lang.Object或一个java.lang.Object数组,传递一个Java数组或一个MATLAB单元数组,MATLAB自动将单元数组元素转换为它们的Java类型,Java数组是Java构造函数返回的数组。也可以在MATLA中构建一个Java数组B使用javaArray函数“。链接:https://in.mathworks.com/help/matlab/matlab_external/passing-data-to-java-methods.html 这建议可以帮助你从那里得到一个Java数组,你可以转换成列表 –
@ KaranSharma我已经做到了。自动转换会创建一个单列多行数组,并且从它创建的列表是相同的。即使转置数组也无济于事,它仍会创建一个包含列中所有值的单个元素列表。 –