我的 MATLAB 工作区中有一个 Java 数组(下例中的 my_array
),我想将其转换回 MATLAB 数组。
whos my_array
Name Size Class
my_array 20000x1 java.lang.Object[]
我在外部接口(interface)文档中找不到如何将 Java 类型转换回 MATLAB 类型。我唯一找到的是 this (关于 MATLAB 单元的文档)说我可以使用 MATLAB 单元来完成这个任务。
使用 MATLAB cells
似乎有点矫枉过正,特别是当我处理数千个相同类型的元素时(在本例中为 double
)。有没有其他方法可以将 Java 对象移回 MATLAB 的原生类型?
最佳答案
例子:
%# example Object[] array
my_array = javaArray('java.lang.Object', 5);
for i=1:5, my_array(i) = java.lang.Double(i); end
%# convert to MATLAB vector
M = arrayfun(@(x)x, my_array);
%# or equivalently
M = cell2mat( cell(my_array) );
>> whos M
Name Size Bytes Class Attributes
M 5x1 40 double
关于java - 从 Java 类型移回 MATLAB 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4869615/