Arrays 将二维单元矩阵转换为二维数值矩阵
我是MATLAB新手,对如何从单元格数组中获取数字数组感到困惑。根据MATLAB,我得到了一些矩阵Arrays 将二维单元矩阵转换为二维数值矩阵,arrays,matlab,cell-array,Arrays,Matlab,Cell Array,我是MATLAB新手,对如何从单元格数组中获取数字数组感到困惑。根据MATLAB,我得到了一些矩阵结果,我得到以下结果: >> size(result) ans = 1 15 >> result ans = Columns 1 through 15 [3] [15] [1x2 double] [13] ... \\ Omitted for clarity >> iscell(result) ans =
结果
,我得到以下结果:
>> size(result)
ans =
1 15
>> result
ans =
Columns 1 through 15
[3] [15] [1x2 double] [13] ... \\ Omitted for clarity
>> iscell(result)
ans =
1
因此,结果似乎是一个尺寸为1 x 15的二维单元数组,但其中也有一个子数组(?),由[1x2 double]
表示。在这个特定的示例中,我们假设只有一个[1x2 double]
元素。换句话说,result
由十四个单元素列和一个多元素列组成
我检查了文档,根据文档,有一种方法叫做cell2mat
。不幸的是,它不能完全满足我的需要,因为它输出一个1x16数字数组:
>> cell2mat(result)
ans =
3 15 10 7 13 ... \\ Omitted for clarity
在本例中,10和7是组成[1x2 double]
的元素,只是MATLAB出于某种原因在打印单元阵列时没有指出这一点
问题:在保留分组的同时,是否有办法将此矩阵转换为数组的数字数组?具体来说,我希望得到形式为[3],[15],[10,7],[13],…]的东西,并且这些是数字。这可能吗?值得一提的是,我使用matlabcontrol中的一些Java代码使用MATLAB,该软件似乎需要实值数组。在MATLAB中没有“Java类型”数组。你可以拥有matlab自己的单元数组,这就是你现在拥有的。此外,matlab中的单元数组没有“直接”转换为java数据结构(查看有关将matlab数据转换为java的更多信息) 很快,我就可以看到您可以考虑的三种可能的方法:
结果
转换为数组的字符串表示形式,将该字符串传递给java,然后将其转换回所需的任何结构李>
Object[]
)进入java,您可以在java中使用这些数组,使它们成为您想要的对象李>
结果
单元格转换为一些java数组(例如,数组的java数组)或任何东西。这是可能的,因为在matlab中可以使用java代码和java数据结构。查看有关在matlab中使用java的更多信息