我有一个 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。)