CSV 文件拒绝被 Matlab 读取

CSV files refuse to be read by Matlab

我目前正在编写一个 matlab 程序,初始阶段涉及从文件夹中调用 .csv 文件。由于未知原因,matlab 不会读取文件(已使用 csvreader、dataimport 和 fopen 进行检查)。注意——绝对是csv文件!

但是,我打开其中一个文件,按 'save as',给它相同的名称和文件格式。发生的唯一值得注意的事情是文件大小显着减小,然后 matlab 可以神奇地打开它,但我不知道为什么。

谁能解释为什么会这样?我只会打开并重新保存文件,除非数据与大量样本相关,这会使手动过程变得很长。如果相关,则数据从 Instron 输出。

非常感谢:)

编辑 所以这是一个名为“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

虽然我现在可以调用该文件,但我 none 更清楚为什么会这样。

试试这个:

 file=fopen('test.csv');
 c=textscan(file,'%f%f%f','HeaderLines',2,'CollectOutput',true, ...
     'delimiter', {',','"'},'MultipleDelimsAsOne',true);
 fclose(file);
 dat=c{1}