我有一个 1x N单元格,称为它X
,其组件X{i}
(对于i
{1, 2, ..., N } 中的)是M x1个字符串单元格或 M x1 个数字向量。
注意:X
包含文本单元格和数字向量的事实排除了cell2mat
在此处使用:
>> tmp = cell2mat(X);
Error using cell2mat (line 46)
All contents of the input cell array must be of the same data type.
我的问题是:
MATLAB 将这些数据转换为M 1x N单元数组的“惯用”方式是什么?
编辑:要清楚,我想要到达的数据结构,我们称之为它Y
,是一个M长的 1x N单元格数组(每个单元格由数字和字符串的混合组成)。例如,如果N = 2,并且如果X{1}
是M x1 字符串单元,并且X{2}
是M x1 双精度向量,则所需的数据结构Y
是这样的,对于任何 1 ≤ i
≤ M,Y(i,:)
是一个 1x2 单元,其第一个元素是中的i
第 - 个字符串,X{1}
其第二个元素是 中的i
第 - 个双精度值X{2}
。即与定义如下Y(i,:)
的 1x2 单元格相同Yi
xi1 = X(i, 1);
xi2 = X(i, 2);
Yi = {xi1{1} xi2{1}};
(对不起,尴尬! 我只是找不到Yi
直接用X
和表示的 MATLAB 表达式i
,而不必创建中间变量xi1
和xi2
。)