我必須在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我已經做到了。自動轉換會創建一個單列多行數組,並且從它創建的列表是相同的。即使轉置數組也無濟於事,它仍會創建一個包含列中所有值的單個元素列表。 –