Matlab тексты могут отформатировать ошибку формата pecpec

При чтении большого CSV-файла Matlab не распознает ||,|| в качестве правильного разделителя в качестве входного аргумента для текстов может. Данные следующие (упрощенные):

||X||,||Y||,||Z|| (header)
||1||,||2||,||4||
||4||,||4||,||3||

и т.п.

я использую data = textscan(fileID,formatSpec,'Delimiter',','); читать данные с некоторыми спецификациями формата '%f %f %f',

Моим решением для резиновой ленты было использовать редактор 010, чтобы заменить все '||' с '', что делает его подходящим CSV-файлом для Matlab, но из-за размера документа (6M строк с приблизительно 35 полями) и частоты появления новых документов это вряд ли является хорошим решением.

Кто-нибудь знает правильный способ импортировать такой файл?

1 ответ

Вы должны иметь возможность включить его в спецификатор формата:

data = textscan(fid, '||%f||,||%f||,||%f||', 'headerlines', 1)

а затем просто пропустите разделитель.

Редактировать (по комментариям)

Если вы пытаетесь читать в строках, хитрость заключается в том, чтобы заставить его читать в строках без | персонаж. Это сделано с помощью %[^|], как это:

data = textscan(fid, '|| %[^|] ||,|| %[^|] ||,|| %[^|] ||', 'headerlines', 1)
Другие вопросы по тегам