使用十进制逗号而不是小数点读取Excel文件(Excel Filename.dvd)?

时间:2013-07-31 08:20:16

标签: matlab

目前我正在尝试阅读带有两个不同结尾的excel文件。 DVD和DVD .sod(来自SCADA系统)。我正在使用[Values] = xlsread(File_to_Open)来执行此操作。我的问题是:在excel文件中我有如此写的值(例如:21,1),逗号不是点(我使用的是德语Windows系统),当我将这些数据导入matlab时,我得到的东西就像37,我不知道为什么!!你能帮我解决使用xlsread()函数时的导入问题吗?

Example for my Excel Data is as following:
Date    Hour    Minute  Second  PlantNo Error   arDevV1 arDevV2 Temp.
01.07.2013  0   0   0   1   0   0,0 0,0 20,1
01.07.2013  0   0   0   2   0   0,0 0,0 20,6
01.07.2013  0   0   0   3   0   0,0 0,0 20,4
01.07.2013  0   0   0   4   0   0,0 0,0 20,7
01.07.2013  0   0   0   5   0   0,0 0,0 20,9
01.07.2013  0   0   0   6   0   0,0 0,0 20,6
01.07.2013  0   0   0   7   0   0,0 0,0 163,2
01.07.2013  0   1   0   1   0   0,0 0,0 20,1
01.07.2013  0   1   0   2   0   0,0 0,0 20,5
01.07.2013  0   1   0   3   0   0,0 0,0 20,3
01.07.2013  0   1   0   4   0   0,0 0,0 20,7

我将在matlab中获得以下内容:

0   0   0   1   0   0   0   37
0   0   0   2   0   0   0,400000000000000   38
0   0   0   3   0   0   0   -43,6000000000000
0   0   0   4   0   0   0   37,8000000000000
0   0   0   5   0   0   0,300000000000000   39,5000000000000
0   0   0   6   246 0   0   0
0   0   1   7   0   0   0   38,8000000000000
0   1   0   1   0   0   0   37
0   1   0   2   0   0   0,400000000000000   38
0   1   0   3   0   0   0   -43,6000000000000
0   1   0   4   0   0   0   37,8000000000000
0   1   0   5   0   0   0,300000000000000   39,5000000000000
0   1   0   6   246 0   0   0
0   1   1   7   0   0   0   38,7000000000000
0   2   0   1   0   0   0   36,9000000000000
0   2   0   2   0   0   0,400000000000000   38

1 个答案:

答案 0 :(得分:2)

仅使用Matlab:

你可以尝试使用raw-output并用逗号替换逗号。您将原始数据作为xlsread的第三个输出:

  

[num,txt,raw] = xlsread( _ )另外返回单元格数组txt中的文本字段,以及使用任何输入返回单元格数组中未处理的数据(数字和文本)先前语法中的参数。如果指定了xlRange,则工作表中前面带有数据的行和列前面的空白行和列将以原始方式返回。

在我看来,更好的方法是将逗号更改为Excel中的点。目前,matlab(或xlsread)将数据解释为其他内容。