2015-03-31 2 views
1

В настоящее время я пишу программу matlab, а начальный этап включает в себя вызов CSV-файлов из папок. По причинам unkown, Matlab не будет читать файлы (проверяется с помощью csvreader, dataimport и fopen). Примечание - это, безусловно, файл csv!Файлы CSV отказываются читать Matlab

Однако я открыл один из файлов, нажал «сохранить как», дал ему то же имя и файл. Единственное примечательное, что произошло, это то, что размер файла значительно уменьшился, а затем Matlab мог волшебным образом открыть его, но я понятия не имею, почему.

Может ли кто-нибудь пролить свет на то, почему это происходит? Я бы просто открыл и сохранил файлы, за исключением того, что данные связаны с большим количеством образцов, которые сделают ручной процесс очень длинным. Если это релевантно, данные выводятся из Instron.

Большое спасибо :)

EDIT Так что это пример одного из файлов под названием '2mm.csv', открыт с помощью блокнота (первые 10 строк ~ 111000):

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)' 

Обратите внимание, что это только захватил первые 2 строки и не разграничена запятой.

Так я открыл файл в 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

CSV файлов просто файлы, которые имеют столбцы, очерченные запятыми, а строки очерченные возврата каретки. Можете ли вы показать нам пример файла CSV, который вы разбираете? Очень сложно диагностировать вашу ошибку, не видя примера. – rayryeng

+0

Что значит 'не читать'? Попробуйте читать с помощью 'fgetl', csv - это текст, он должен печатать некоторый контент. Какой инструмент вы использовали для открытия/сохранения? – Daniel

+1

«открыл один из файлов», открылся с чем? – agentp

ответ

1

Попробуйте это:

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

Это работает отлично! Благодарю. – aravis293

Смежные вопросы