【发布时间】:2017-06-16 15:04:15
【问题描述】:
我必须在 Matlab 中将 131072x1 int32 类型的矩阵中的数据按摩到 Java List<Integer> 中。到目前为止,我想出的唯一可行的转换是遍历值并将它们直接添加到 LinkedList。
count = size(data_flattened, 1);
ll = java.util.LinkedList;
for i = 1:count
ll.add(data_flattened(i));
end
这在极端情况下很慢(5 秒)。我尝试了几种先转换为 Java 数组然后再转换为 List 的公式,但我总是得到一个 1 列和 131072 行的数组。
我需要一种快速将 N×1 Matlab 的 int32 矩阵分配给 Java List<Integer> 类型的方法。
【问题讨论】:
-
我引用 Matlab 文档“传递对象数组要调用具有定义为 java.lang.Object 或 java.lang.Object 数组的参数的方法,请传递 Java 数组或 MATLAB “链接:in.mathworks.com/help/matlab/matlab_external/… 这建议可以帮助您从那里获取一个 java 数组,您可以将其转换为列表
-
@KaranSharma 我已经做到了。自动转换创建一个单列多行数组,从它创建的 List 是相同的。即使转置数组也无济于事,它仍然会创建一个包含列中所有值的单个元素列表。