matlab读取文件 错误使用dlmread文件和格式字符向量之间不匹配。读取文件中的 ‘Numeric‘ 字段时出现问题

问题出现

在做数据挖掘时,由于别人的模型使用的数据文件格式是mat格式,所以我不得不将csv格式的数据文件转化为mat格式的文件。当然还有另一种思路是去修改源代码,让其可以读取csv格式的数据,而这样的操作需要去分析或者debug别人的代码,然后修改,修改后可能还会有一堆错误需要解决。所以我觉得把它转化为模型所需的数据格式可能会比较方便。因此,这次的csv文件转化为mat文件操作中,我就出现了这样的问题:

  • 错误使用 dlmread (line 147) 文件和格式字符向量之间不匹配。 读取文件(行号 1,字段编号 1)中的 ‘Numeric’
    字段时出现问题 ==>
    -1.93027,-1.47324,…

问题截图如下:
《matlab读取文件 错误使用dlmread文件和格式字符向量之间不匹配。读取文件中的 ‘Numeric‘ 字段时出现问题》

其它解决办法

我看过搜索过其它的解决方法,在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文件了,如下图所示。如果这种方法还不行,能力有限,只能帮助到这里了,大家只能再看看其他人的方法了。
《matlab读取文件 错误使用dlmread文件和格式字符向量之间不匹配。读取文件中的 ‘Numeric‘ 字段时出现问题》

    原文作者:怀恋的愤怒
    原文地址: https://blog.csdn.net/z418998824/article/details/117018758
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞