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

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

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

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

b=cell2mat(a);

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

使用matlab中cell2mat报错:错误使用cat 要串联的数组的维度不一致_第1张图片

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

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

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

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

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

成功转换:

使用matlab中cell2mat报错:错误使用cat 要串联的数组的维度不一致_第2张图片

你可能感兴趣的:(matlab,开发语言,矩阵)