Я использую fscanf для импорта данных в MATLAB. Мой текстовый файл отформатирован как таковой:Как использовать fscanf для обнаружения разрывов строк?
######-10-K-########
######-10-K-########
Первое число может варьироваться от 6 до 9 символов. Сейчас я использую код:
var = fcanf(fn, %s)
, в результате чего var равен одной гигантской строке.
Я читал, что использование% s будет продолжаться до тех пор, пока оно не обнаружит пробел. Есть ли кто-нибудь, чтобы заставить его остановиться, когда он обнаруживает штриховку вместо этого?
Какую часть данных вы действительно хотите импортировать? Целые строки как отдельные строки? Только цифры и буквы? – Matt
Просто примените свой ['спецификатор формата'] (http://mathworks.com/help/matlab/ref/textscan.html#inputarg_formatSpec) к вашим данным:' fscanf (fn, '% f-10-K-% f ', Или если вы используете textscan, как в ответе ниже: 'file_data = textscan (f,'% f-10-K-% f ');'. Заменить '% f' на'% d', если вы ожидаете только целые числа – Hoki
, помещая символ '' 'звезды в спецификаторе формата, говорит Matlab игнорировать эту запись, поэтому в вашем случае используйте:'% f-10-K -% * f \ n' – Hoki