Matlab cell2mat具有不同的数据类型

时间:2019-02-15 15:41:40

标签: matlab

从数据库导入数据时,我将其作为单元格接收。单元格的一行包含双精度值(例如0.3421 0.5545 0.9199),另一行仅包含int32值(1 1 0)。 当我想用cell2mat变换整个单元时,出现不匹配错误。如果我分别在每一行上使用cell2mat,则会收到一个矩阵,该矩阵是double的,一个矩阵是int32的。是否有一个功能可以将整个单元格转换成两倍的矩阵?

编辑:我事先不知道哪一行是int32,哪一行是双精度,因此不一定是第1行和第2行。有> 50行

1 个答案:

答案 0 :(得分:1)

在使用cell2mat之前,您可以使用cellfun将所有数据转换为双精度数据:

a={int16(round(100*rand(100,1))), int32(round(100*rand(100,1)))}

b = cellfun(@double, a, 'uni', false);

cell2mat(b)