3

目前我正在尝试读取具有两个不同结尾的 excel 文件。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
4

1 回答 1

2

仅使用 Matlab:

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

[num,txt,raw] = xlsread( _ ) 还使用上述语法中的任何输入参数返回元胞数组 txt 中的文本字段,以及元胞数组 raw 中的未处理数据(数字和文本)。如果指定了 xlRange,则工作表中位于具有数据的行和列之前的前导空白行和列将以原始形式返回。

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

于 2013-07-31T08:41:08.620 回答