查看单个帖子
旧 2019-12-14, 20:13   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 从Java类型回到MATLAB类型

我的MATLAB工作区中有一个Java数组(以下示例中的my_array ),我想将其转换回MATLAB数组。

whos my_array Name Size Class my_array 20000x1 java.lang.Object[] 我在外部接口文档中找不到如何将Java类型转换回MATLAB类型的方法。我发现的唯一内容是文件(有关MATLAB单元的文档),它说我可以使用MATLAB单元来完成此任务。

使用MATLAB cells似乎是一个矫kill过正,特别是当我处理成千上万个相同类型的元素(在这种情况下,是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

更多&回答...
poster 当前离线   回复时引用此帖