【发布时间】:2014-02-13 00:19:17
【问题描述】:
我是 MATLAB 新手,对如何从元胞数组中获取数值数组感到困惑。根据 MATLAB,我有一些矩阵 result,我得到以下信息:
>> 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 由 14 个单元素列和 1 个多元素列组成。
我检查了文档,根据this page 有一个名为cell2mat 的方法。不幸的是,它并不能完全满足我的需求,因为它输出一个 1x16 数字数组:
>> cell2mat(result)
ans =
3 15 10 7 13 ... \\ Omitted for clarity
在本例中,10 和 7 是构成 [1x2 double] 的元素,只是 MATLAB 在打印元胞数组时无论出于何种原因都没有表明这一点。
问题:有没有办法可以在保留分组的同时将此矩阵转换为数组的数字数组?具体来说,我希望得到 [[3], [15], [10, 7], [13], ...] 形式的东西,并将它们设为 numeric。这可能吗?对于它的价值,我正在使用 MATLAB 和一些来自 matlabcontrol 的 Java 代码,并且该软件似乎需要实值数组。
【问题讨论】:
标签: arrays matlab cell-array