Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> MATLAB

Импорт данных в MATLAB: эффективная загрузка внешних файлов

Импорт данных — загрузка из внешнего файла. Функция importdata поддерживает различные форматы. Имеет 5 форм вызова:

№Функция и описание
1A = importdata(filename) — загрузка в массив A из файла
2A = importdata('-pastespecial') — загрузка из буфера обмена
3A = importdata(___, delimiterIn) — разделитель столбцов в ASCII/буфере
4A = importdata(___, delimiterIn, headerlinesIn) — чтение числовых данных начиная со строки headerlinesIn+1
5[A, delimiterOut, headerlinesOut] = importdata(___) — возврат обнаруженного разделителя и числа заголовков

Пример 1: загрузка изображения

filename = 'smile.jpg';
A = importdata(filename);
image(A);

Файл должен быть в текущей директории.

Пример 2: текстовый файл с разделителем и заголовком

Файл weeklydata.txt (пробельный разделитель, 1 строка заголовка):

SunDay MonDay TuesDay WednesDay ThursDay FriDay SaturDay
95.01 76.21 61.54 40.57 55.79 70.28 81.53
73.11 45.65 79.19 93.55 75.29 69.87 74.68
...
filename = 'weeklydata.txt';
delimiterIn = ' '; headerlinesIn = 1;
A = importdata(filename, delimiterIn, headerlinesIn);
for k = 1:7
    disp(A.colheaders{1,k})
    disp(A.data(:,k))
    disp(' ')
end

Пример 3: импорт из буфера обмена

A = importdata('-pastespecial')

В буфере: Mathematics is simple → A = 'Mathematics is simple'

Низкоуровневый файловый ввод-вывод

importdata — высокоуровневая функция. Низкоуровневые функции дают полный контроль, но требуют детальной информации о файле.

ФункцияОписание
fcloseЗакрыть открытые файлы
feofПроверка конца файла
ferrorИнформация об ошибках ввода-вывода
fgetlЧтение строки (без перевода строки)
fgetsЧтение строки (с переводом строки)
fopenОткрыть файл, получить идентификатор
fprintfЗапись в текстовый файл
freadЧтение из бинарного файла
frewindПеремещение указателя в начало файла
fscanfЧтение форматированных данных из текстового файла
fseekПеремещение к указанной позиции
ftellТекущая позиция в файле
fwriteЗапись в бинарный файл

Импорт текстовых файлов низкоуровневым I/O

Пример: сложный текстовый файл с данными о дожде

Файл myfile.txt содержит заголовок с числом месяцев M, затем M наборов из 7 строк и 5 столбцов измерений.

filename = '/data/myfile.txt'; rows = 7; cols = 5;
fid = fopen(filename);
M = fscanf(fid, '%*s %*s\n%*s %*s %*s %*s\nM=%d\n\n', 1);
for n = 1:M
    mydata(n).time = fscanf(fid, '%s', 1);
    mydata(n).month = fscanf(fid, '%s', 1);
    mydata(n).raindata = fscanf(fid, '%f', [rows, cols])';
end
for n = 1:M
    disp(mydata(n).time), disp(mydata(n).month)
    disp(mydata(n).raindata)
end
fclose(fid);

Используются спецификаторы формата: %s (строка), %d (целое), %f (float), * для пропуска полей.

MATLAB

  1. Azure File Storage: руководство для начинающих по безопасному, масштабируемому облачному хранилищу
  2. MATLAB: Комплексный обзор ведущей среды численных вычислений
  3. Типы данных в MATLAB: Полное руководство с примерами
  4. Операторы MATLAB: Арифметические, логические, битовые и операции над множествами
  5. Матрицы в MATLAB: Создание, индексация, удаление строк/столбцов и операции
  6. MATLAB: Мастерство работы с многомерными и специальными массивами
  7. Оператор двоеточия в MATLAB: создание векторов и эффективная итерация
  8. Числа в MATLAB: типы, хранение и преобразование
  9. Строки в MATLAB: создание, манипуляции и функции
  10. Функции в MATLAB: определение, рабочая область, входные и выходные аргументы