我们有一个如下的cell数据
cdata = {'1' '11' '111' '1111' '11111'};
现在要把他转变成double型的数组,很自然会想到的方法是cell2mat,可悲的是会遇到一个问题:
matlab要求每一行的数据长度要相同才行。
解决这个问题:
1、先把cell转变成char数组,在把他转变成数据类型。原理是转变成char之后的矩阵每行的长度是相同的。
str2num(char(cdata))
2、使用cellfun函数,第一个参数传递对每个cell单元使用的函数名,第二个参数是cell名。
cellfun(@str2num, cdata)