使用matlab中cell2mat报错:错误使用cat 要串联的数组的维度不一致

从Excel中用readtable读取数据,因为默认每一列都是cell类型,想转成matrix类型方便使用。

在matlab官方文档搜到cell2mat函数可用于转换

b=cell2mat(a);

但转换时报错:错误使用 cat
要串联的数组的维度不一致

报错信息

搜索后发现错误原因在于每行cell中长度不一致。

cell中的存储格式是char,用单引号表示出来,直接调用cell2mat,转换成的matrix内的数据类型也为char,但是长度不一致,有的行可能是两个字符有的可能却是三个

在官方文档搜索后发现函数convertCharsToStrings(chr),可以用于合并字符串

于是采用遍历的方式,用比较朴素的方法完成cell2mat:

b=[];
for i=1:size(a)
    b=[b;convertCharsToStrings(a{i})];
end

成功转换:

转换前后

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐