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

使用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

成功转换:

转换前后

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值