问题出现
在做数据挖掘时,由于别人的模型使用的数据文件格式是mat格式,所以我不得不将csv格式的数据文件转化为mat格式的文件。当然还有另一种思路是去修改源代码,让其可以读取csv格式的数据,而这样的操作需要去分析或者debug别人的代码,然后修改,修改后可能还会有一堆错误需要解决。所以我觉得把它转化为模型所需的数据格式可能会比较方便。因此,这次的csv文件转化为mat文件操作中,我就出现了这样的问题:
- 错误使用 dlmread (line 147) 文件和格式字符向量之间不匹配。 读取文件(行号 1,字段编号 1)中的 ‘Numeric’
字段时出现问题 ==>
-1.93027,-1.47324,…
问题截图如下:
其它解决办法
我看过搜索过其它的解决方法,在matlab的中文论坛以及其它网站也看过几种其他人的解决办法,如:用其它的数据读取文件方式,或者说是matlab版本问题。。。大家可以自行查询,而我用了个别方法都没有成功,所以在此记录下我的解决方法。
我的方法
之所以我在matlab读取csv数据文件的时候会出现这样的情况,是因为csv文件的编码有问题。之前用python数据预处理的时候,把编码的格式设置为“utf-8_sig”,所以导致了用matlab读取文件出现了这个问题,所以解决方法是将读取的文件编码格式改为“utf-8”即可,具体改的方法有两个,如果你的数据文件就才几个,可以是手动的方法,直接另存为的操作,参考链接如下:
- https://zhidao.baidu.com/question/360722668350636652.html
另一种方法就是对于你的文件是成百上千个的话,你就需要用python或者其它编程语言来处理了。这次我用了python,使用了pd.to_csv()方法,设置to_csv()属性encoding为“utf-8”即可。具体操作的参考链接如下:
- https://www.cnblogs.com/wyy1480/p/10322336.html
这样就可以使用matlab成功读取csv文件了,如下图所示。如果这种方法还不行,能力有限,只能帮助到这里了,大家只能再看看其他人的方法了。