[英]Import csv files in MATLAB
我正在尝试使用以下代码导入具有很多小数字(介于1.0E-11和1.0E-9之间)的csv文件 (7816 x 119):
filename = 'dataset.csv';
D = importdata(filename,',',1);
当我检查导入结果时,我得到
D=
data: [187x119 double]
textdata: {1x119 cell}
colheaders: {1x119 cell}
请注意, D
的大小比原始数据的大小小很多。
当我对具有更大数字(不是科学计数法)的矩阵执行相同的处理时,我没有任何问题。
我想知道MATLAB是否有可以导入csv文件的大小限制或具有科学计数法的数字限制?
据怀疑,您的数据在某些地方已损坏。 在文件中搜索“ DIV”,您将找到条目“#DIV / 0!”。 几次。 有趣的是,这对我来说适用于某些matlab版本(我目前不知道版本号),以及当前发行版中的八度音阶。
这里测试:
D = csvread('data_matlab.csv', 1, 0);
给
Error using dlmread (line 143)
Mismatch between file and format string.
Trouble reading 'Numeric' field from file (row number 187, field number 72) ==>
#DIV/0!,1.11E-08,0,9.28E-09,2.8E-09,0.000000031,1.99E-08,6.49E-10,1.75E-09,9.66E-09,8.47E-10,3.82E-09,2.41E-10,1.71E-09,5.48E-09,1.32E-09,8.73E-09,2.05E-09,8.89E-10,3.83E-10,0,1.36E-08,2.92E-09,3.08E-...
Error in csvread (line 47)
m=dlmread(filename, ',', r, c);
您从哪里获得数据? 可以影响输出吗? 如果您无法手动(使用适当的工具)替换错误的条目或使用@Trogdors答案。
我能够重现问题。 使用xlsread
不会产生该问题:
filename = 'data_matlab.csv';
d = xlsread(filename);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.