在使用MATLAB自带的随机森林函数TreeBagger做分类时,它的label格式是放在cell中字符串。由于要提取出数值格式,便使用了cell2mat和str2num组合。
cell2mat要求同一列的cell内的数组列数相同,当label为‘-1’, ‘1’置于2*1的cell时,便出错了。因为‘-1’是两个字符(‘负号’和数值‘1’),‘1’是一个字符,cell2ma调用的cat函数出错。
解决方法一:可以单独将每个cell,如‘-1’调用cell2mat和str2num,转化为数值,再放到数组中。
解决方法二:使用0,1标签,而不是-1,1标签。
所以,使用cell2mat时要注意cell中数值的正负号。