我目前正在编写一个matlab程序,初始阶段涉及从文件夹中调用.csv文件。由于未知的原因,matlab将不会读取文件(使用csvreader,dataimport和fopen进行检查)。注意 - 它绝对是一个csv文件!
但是,我打开了其中一个文件,按下“另存为”,给它起了相同的名称和文件格式。发生的唯一值得注意的事情是文件大小显着减少,然后matlab可以神奇地打开它,但我不明白为什么。
任何人都可以解释为什么会这样吗?我只是打开并重新保存文件,除了数据与大量样本相关,这将使手动过程非常长。如果它是相关的,则数据从Instron输出。
非常感谢:)
EDIT 所以这是一个名为'2mm.csv'的文件的示例,使用记事本打开(前10行~111,000):
Time,Extension,Load
(s),(mm),(N)
"0.00000","51.97554","0.09549"
"1.00000","52.13438","0.24999"
"2.00000","52.30102","0.13996"
"3.00000","52.46782","0.19513"
"4.00000","52.63449","0.15348"
"5.00000","52.80097","0.26828"
"6.00000","52.96780","0.32510"
"7.00000","53.13446","0.67119"
"8.00000","53.30105","4.56026"
"9.00000","53.46772","17.80811"
这是我用来打开它的代码和结果:
>> importdata('2mm.csv',',',2)
ans =
'Time,Extension,Load'
'(s),(mm),(N)'
请注意,它只捕获了前两行,并且没有分隔逗号。
所以我在MS Excel中打开文件,将其保存为2mmv2.csv并输入相同的代码。我得到了预期的结构:
>> importdata('2mmv2.csv',',',2);
>> ans.data(1:10,:)
ans =
0 51.9755 0.0955
1.0000 52.1344 0.2500
2.0000 52.3010 0.1400
3.0000 52.4678 0.1951
4.0000 52.6345 0.1535
5.0000 52.8010 0.2683
6.0000 52.9678 0.3251
7.0000 53.1345 0.6712
8.0000 53.3010 4.5603
9.0000 53.4677 17.8081
虽然我现在可以调用该文件,但我并不清楚为何会出现这种情况。
答案 0 :(得分:1)
试试这个:
file=fopen('test.csv');
c=textscan(file,'%f%f%f','HeaderLines',2,'CollectOutput',true, ...
'delimiter', {',','"'},'MultipleDelimsAsOne',true);
fclose(file);
dat=c{1}