Всем привет, мы снова встретились, я ваш друг Цюаньчжаньцзюнь.
Несколько функций Matlab для чтения текстовых файлов:
1. загрузка – подходит для чтения чистого текста данных;
2. importdata - только читает данные и автоматически опускает символы до и после формата данных. Не подходит для очень больших файлов;
3. textread, textscan — подходит для чтения текста с обычными строками и столбцами и будет храниться в ячейках. Вы можете не читать имена полей (строки символов) через строки заголовков;
4. csvread, dlmread — подходят для чтения текста в файлах csv, xsl и других форматах;
5. fprintf, fscanf — подходят для чтения сложного текста (смешанного китайского, английского и числовых строк);
1. Чистый файл данных (без букв и китайских иероглифов, чистые цифры)
Текстовый документ такого типа гораздо проще прочитать из Matalb.
Например, файл test.txt содержит содержимое «17.901 -1.1111 33.045 17,891 -1,1286 33,045 17,884 -1,1345 33,045”
Вы можете ввести команду load test.txt, после чего будет создан файл тестовых данных. Содержимое такое же, как и данные в test.txt; другой метод — сгенерировать его в файле/импортировать данные.../. следующий/финиш Файл данных под названием test.
2. Китайский, английский и такие данные, как test1.txt.
"Привет добро пожаловать в Вибрационный форум vib.hit.edu.cn 1 11 111 1111 2 22 222 2222 3 33 333 3333 4 44 444 4444 5 55 555 5555” Как считать данные в такой файл? Способов много, вот два простых и практичных.
Способ первый: file/import data……/next/finish >> whos Name Size Bytes Class
data 5×4 160 double array textdata 4×1 300 cell array
Grand total is 54 elements using 460 bytes
>> data
data =
1 11 111 1111 2 22 222 2222 3 33 333 3333 4 44 444 4444 5 55 555 5555
>> textdata
textdata =
'Привет' 'Добро пожаловать' «Вибрационный форум» «vib.hit.edu.cn»
Способ второй: [a1,a2,a3,a4]=textread('test1.txt','%s%s%s%s','headerlines',4) Примечание. %s может иметь другую форму, в зависимости от типа считываемых данных. Например, здесь также можно использовать %n, %f и т. д. Здесь номер %s соответствует [a1, a2, a3, a4].
>> [a1,a2,a3,a4]=textread(‘test1.txt’,’%s%s%*s%*s’) # %*s означает пропуск последних двух столбцов данных.
a1 =
‘1’ ‘2’ ‘3’ ‘4’ ‘5’
a2 =
’11’ ’22’ ’33’ ’44’ ’55’
a3 =
‘111’ ‘222’ ‘333’ ‘444’ ‘555’
a4 =
'1111' '2222' '3333' '4444' '5555' Поскольку он читается в виде строки, существует «. ——————————————————————————————
3. Китайские и английские данные сбивают с толку, как и test.txt.
Привет 1 11 111 1111 добро пожаловать в 2 22 222 2222 Вибрационный форум 3 33 333 3333 vib.hit.edu.cn 4 44 444 4444 5 55 555 5555
Примечание. Описанный выше метод нельзя использовать для файлов с этим форматом содержимого.
Вот метод, написанный chinamaker:
fidin=fopen(‘test.txt’); % Откройте файл test2.txt fidout=fopen(‘mkmatlab.txt’,’w’); % Создайте файл MKMATLAB.txt. while ~feof(fidin) % Определить, является ли это концом файла tline=fgetl(fidin); % Читать строки из файла if double(tline(1))>=48&&double(tline(1))<=57 % Определите, является ли первый символ числовым значением fprintf(fidout,’%s\n\n’,tline); % Если это числовая строка, запишите эту строку данных в файл MKMATLAB.txt. continue % Если это не число, перейдите к следующему циклу. end end fclose(fidout); MK=importdata(‘MKMATLAB.txt’); % Импортируйте сгенерированный файл MKMATLAB.txt в рабочую область, переменная называется MK, на самом деле она не отображается. >> MK
MK =
1 11 111 1111 2 22 222 2222 3 33 333 3333 4 44 444 4444 5 55 555 5555
Заявление об авторских правах: Содержание этой статьи добровольно предоставлено пользователями Интернета, а мнения, выраженные в этой статье, представляют собой только точку зрения автора. Этот сайт предоставляет только услуги по хранению информации, не имеет никаких прав собственности и не принимает на себя соответствующие юридические обязательства. Если вы обнаружите на этом сайте какое-либо подозрительное нарушение авторских прав/незаконный контент, отправьте электронное письмо, чтобы сообщить. После проверки этот сайт будет немедленно удален.
Издатель: Лидер стека программистов полного стека, укажите источник для перепечатки: https://javaforall.cn/197373.html Исходная ссылка: https://javaforall.cn