Matlab 读取带有小数点的小数点逗号的Excel文件(Excelfinlename.dvd)?
目前我正在尝试读取一个excel文件,其中有两个不同的结尾。dvd和.sod(来自SCADA系统)。我正在使用[Values]=xlsread(File\u to\u Open)来执行此操作。我的问题是:在excel文件中,我用逗号而不是点(我使用的是德国的Windows系统)编写了值(例如:21,1),当我将这些数据导入matlab时,我得到了类似37的值,我不知道为什么!!在使用xlsread()函数时,您能帮我解决这个导入问题吗Matlab 读取带有小数点的小数点逗号的Excel文件(Excelfinlename.dvd)?,matlab,Matlab,目前我正在尝试读取一个excel文件,其中有两个不同的结尾。dvd和.sod(来自SCADA系统)。我正在使用[Values]=xlsread(File\u to\u Open)来执行此操作。我的问题是:在excel文件中,我用逗号而不是点(我使用的是德国的Windows系统)编写了值(例如:21,1),当我将这些数据导入matlab时,我得到了类似37的值,我不知道为什么!!在使用xlsread()函数时,您能帮我解决这个导入问题吗 Example for my Excel Data is a
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
仅使用Matlab:
您可以尝试使用原始输出并用点替换逗号。您将原始数据作为xlsread的第三个输出:
[num,txt,raw]=xlsread(ux)还使用前面语法中的任何输入参数返回单元格数组txt中的文本字段,以及单元格数组raw中未处理的数据(数字和文本)。如果指定了xlRange,则工作表中带数据的行和列之前的前导空白行和列将以原始格式返回
在我看来,最好是在Excel中将逗号改为点。目前,matlab(或xlsread)正在将数据解释为其他内容。您是否有一个函数可以直接在逗号和点之间进行此更改?这可以帮助我节省一些时间,而且速度很快而且很脏,它应该是这样的:循环原始数据中的每个元素,并使用strrep(raw(indx,indy),“,”)。我今天没有足够的时间来测试它:(也许其他人有…Thx非常感谢您的帮助,我只是使用Cell2mat函数来获得所需的值:)我节省了一些时间,不使用for循环^^