我尝试加载.csv:
Time Column01 Column02 Column03
11.03.2004 09:17:02 236.81 237.31 236.45
11.03.2004 09:17:05 236.6 237.06 236.18
11.03.2004 09:17:08 236.67 237.16 236.28
11.03.2004 09:17:12 236.83 237.24 236.41
11.03.2004 09:17:15 233.84 234.2 233.4
...
使用:
b=csvimport('u1.csv','columns',{'Time'});
c=csvimport('u1.csv','columns',{'Column03'});
第一次工作,但第二次没有。谁知道为什么?我有这个错误:
使用csvimport时出错(第200行) 无法在文件'u1.csv'中找到列标题'Column03'。列标题名称 区分大小写。
TSFP出错(第4行) C = csvimport( 'u1.csv', '列',{ 'Column03'});
Here是关于此功能的描述。
答案 0 :(得分:3)
您的档案中没有逗号!
严格来说,它不是逗号分隔值文件。从它的外观来看,它的标签分开了。
与第一个示例中一样,使用dlmread可能会有更好的结果:
M = gallery('integerdata', 100, [5 8], 0);
dlmwrite('myfile.txt', M, 'delimiter', '\t')
dlmread('myfile.txt')
ans =
96 77 62 41 6 21 2 42
24 46 80 94 36 20 75 85
61 2 93 92 82 61 45 53
49 83 74 42 1 28 94 21
90 45 18 90 14 20 47 68
答案 1 :(得分:1)
如果您要导入所有数据,我会使用textscan
。 dlmread
只会导入数字数据,但您的日期和时间列需要被视为字符串。
filename='u1.csv';
fid=fopen(filename,'r');
C=textscan(fid, '%s%s%f%f%f', 'HeaderLines', 1);
fclose(fid);
C
是一个单元格数组,因此要访问日期列中的第二个值和Column01中的第二个值,请执行以下操作:
date = C{1}{2};
value = C{3}(2);
值得注意的是,这会分别导入日期和时间,因为文件中它们之间有空格。如果你想重新组合它们,你可以这样做:
C={strcat(C{1}, {' '}, C{2}), C{3:5}};