我们有一个如下的cell数据

cdata = {'1'
        '11'
        '111'
        '1111'
        '11111'};

现在要把他转变成double型的数组,很自然会想到的方法是cell2mat,可悲的是会遇到一个问题:

从Cell类型转变成数据型-LMLPHP

matlab要求每一行的数据长度要相同才行。

解决这个问题:

1、先把cell转变成char数组,在把他转变成数据类型。原理是转变成char之后的矩阵每行的长度是相同的。

 str2num(char(cdata))

2、使用cellfun函数,第一个参数传递对每个cell单元使用的函数名,第二个参数是cell名。

cellfun(@str2num, cdata)
04-29 00:56