Как загрузить данные из файла Excel в Matlab

Обновлено: 21.11.2024

Работа с электронными таблицами

Вы можете использовать MATLAB для импорта и экспорта данных в следующие типы электронных таблиц:

Таблицы Microsoft Excel

Этот раздел охватывает

Дополнительную информацию и примеры см. на справочных страницах xlsfinfo , xlswrite и xlsread .

Получение информации о файле

Используйте функцию xlsfinfo, чтобы определить, содержит ли файл удобочитаемую электронную таблицу Microsoft Excel.

Входные данные для xlsfinfo

Выходные данные xlsfinfo

    Строка «Электронная таблица Microsoft Excel», если файл содержит рабочий лист Excel, который можно прочитать с помощью функции xlsread. В противном случае он содержит пустую строку ( '' ). Массив ячеек строк, содержащих имена каждого рабочего листа в файле.

Пример. Запрос файла XLS. В этом примере возвращается информация о файле электронной таблицы tempdata.xls:

Экспорт в файл

Используйте функцию xlswrite для экспорта матрицы в файл электронной таблицы Excel. С помощью xlswrite вы можете экспортировать данные из рабочей области на любой лист в файле и в любое место на этом листе.

Входные данные для xlswrite

    Имя файла электронной таблицы Экспортируемая матрица Имя рабочего листа для получения данных Диапазон ячеек на рабочем листе для записи данных

Выводы xlswrite

    Статус прохождения или сбоя Любое предупреждение или сообщение об ошибке, созданное вместе с его идентификатором сообщения

Пример. Запись в файл XLS. В этом примере в файл tempdata.xls записывается смесь текстовых и числовых данных. Вызовите xlswrite , указав лист с надписью Temperatures и область на листе, в которую нужно записать данные. Матрица 4 на 2 записывается в прямоугольную область, начинающуюся с ячейки E1 в верхнем левом углу:

Добавление нового рабочего листа. Если рабочий лист, на который выполняется запись, еще не существует в файле, MATLAB отображает следующее предупреждение:

Вы можете отключить эти предупреждения с помощью команды

Импорт из файла

Используйте xlsread для импорта матрицы из файла электронной таблицы Excel в рабочее пространство MATLAB. Вы можете импортировать данные из любого листа в файле и из любого места на этом листе. Вы также можете сделать так, чтобы xlsread открывал окно Excel, показывающее файл, а затем в интерактивном режиме выбирал рабочий лист и диапазон данных, которые будут считаны функцией.

Входные данные для xlsread

    Имя файла электронной таблицы Импортируемая матрица Имя рабочего листа, из которого считываются данные Диапазон ячеек на рабочем листе, из которого считываются данные Ключевое слово, открывающее окно Excel, позволяющее в интерактивном режиме выбрать рабочий лист и диапазон данных для read Ключевое слово, которое импортируется с использованием базового режима импорта

Три отдельных вывода xlsread

    Числовые данные Строковые данные Любое необработанное содержимое ячейки

Пример. Чтение из файла XLS. Продолжая предыдущий пример, чтобы импортировать только числовые данные, используйте xlsread с одним возвращаемым аргументом. xlsread игнорирует любую начальную строку или столбец текста в числовом результате:

Чтобы импортировать как числовые, так и текстовые данные, укажите два возвращаемых значения для xlsread :

Я дал таблицу Excel. Эту таблицу Excel я импортировал с помощью «Импорт данных» и сохранил как массив ячеек как «функция генерации». Теперь я хочу присвоить содержимое импортированного файла переменной. Могу ли я сделать это с помощью: imp = importfile_1(путь к созданному файлу импорта);

Проблема в том, что он не работает в банкомате. Записи в переменной не равны записям Excel.

4 комментария

Прямая ссылка на этот комментарий

Прямая ссылка на этот комментарий

Можете ли вы прикрепить фрагмент исходного файла и объяснить, как в конечном итоге вы хотите, чтобы контент был «разделен» (согласно вашему комментарию к ответу Аззи)?

Прямая ссылка на этот комментарий

Прямая ссылка на этот комментарий

Файл "filetoopen" представляет собой файл "MATLAB Code". Если я хочу открыть его с помощью кода сверху, Matlab говорит: «Неопределенная функция« importfile »для входных аргументов типа« char »». И теперь вопрос в том, как я могу сохранить "filetoopen" в массиве.

Как я могу разделить контент, который я знаю сейчас. Для этого я могу использовать некоторые опции в меню «Импорт данных». Там я могу сказать, что Matlab должен разбивать текст после каждого ".

Прямая ссылка на этот комментарий

Прямая ссылка на этот комментарий

Проблема в том, что никто из нас, кажется, не понимает, чего вы пытаетесь достичь в целом. Итак, мы должны начать с самого начала: если вы пытаетесь прочитать содержимое файла и извлечь часть этого содержимого, не могли бы вы прикрепить этот файл к своему сообщению? Это основная иконка для этой цели в редакторе. Затем сообщите нам, что именно вы хотите извлечь и с какой целью.

Прямая ссылка на этот комментарий

Прямая ссылка на этот комментарий

Я дал файл Excel. В этом файле в первом столбце есть текст. (см. вложение) Я хочу выбрать 2 слова из каждой строки (но это другая проблема, и она не должна быть частью этого вопроса).

Принятый ответ

Прямая ссылка на этот ответ

Прямая ссылка на этот ответ

Мне кажется, я начинаю понимать, что вы сделали, и это не то, что мы обычно делаем на самом деле, отсюда и недопонимание.

С помощью инструмента «Импорт данных» (а не функции) вы загрузили содержимое книги Excel. Затем вы попросили инструмент сгенерировать для вас функцию. Теперь инструмент не генерирует функцию с данными. Он создает функцию для загрузки данных из того же файла Excel, который вы изначально открыли, чтобы позволить вам пропустить этот шаг в следующий раз, когда вы захотите прочитать данные. Эта функция принимает в качестве аргумента путь/имя исходного файла Excel. Таким образом, если вы открыли файл MyData.xlsx с помощью инструмента «Импорт данных», правильным вызовом для загрузки данных из того же файла будет

Теперь мы никогда не делаем всего этого с помощью инструмента импорта данных. Вместо этого мы напрямую вызываем функцию XLSREAD (вы можете убедиться, что скрипт importfile делает то же самое):

где первый вывод XLSREAD — это числовой массив, который мы отбрасываем с помощью ~, поскольку в вашей книге нет числовых данных, а второй содержит текст.

Если вы не хотите в следующий раз читать исходный файл Excel (потому что он медленный), теперь вы можете сохранить данные массива ячеек в MAT-файл, используя СОХРАНИТЬ, и загрузить его, используя ЗАГРУЗИТЬ (у вас будет чтобы прочитать документ, чтобы увидеть, как это работает).

Видимо, вы хотите разбить каждую строку на слова, что вы можете сделать с помощью STRSPLIT. Вы можете попробовать содержимое первой ячейки данных:

и увидите, что у вас есть массив ячеек со словами. Затем вы можете подумать о реализации, например. цикл по всем ячейкам данных и сохранение слов, например, в другом массиве ячеек.

14 комментариев

Прямая ссылка на этот комментарий

Прямая ссылка на этот комментарий

При этом я получаю массив ячеек с таблицей Excel. Теперь с помощью strsplit я могу разделить каждую строку. Поэтому, если я поставлю его в цикл, я получу массивы ячеек только с одной строкой файла excel.

Теперь я хочу разделить каждое слово в строке. Как я могу это сделать? Проблема в том, что я должен прочитать одно слово после ключевого слова. Например, в каждой строке стоит слово «сейчас». Так что я должен выбрать слово после "сейчас". В примере ключевым словом будет «я». Итак, в первой строке я хочу «иметь», во второй строке «нужно», в третьей строке «надеюсь» и так далее. Итак, цель состоит в том, чтобы сказать: Дайте мне слово после «я» в каждом ряду. И тогда программа дает мне "есть", "нужно" и "надеюсь".

Прямая ссылка на этот комментарий

Прямая ссылка на этот комментарий

Возможно несколько подходов. Один опирается только на базовое программирование, так что это будет хорошей тренировкой для вас, а другой полагается на сопоставление с образцом. Последний более лаконичен и не требует разбиения предложений на слова, но он опирается на регулярные выражения для сопоставления текстовых шаблонов, а это нетривиальная тема.

Во-первых, предположим, что вы загрузили свои предложения в данные массива ячеек и вам интересно, что делать дальше. Есть извлечение слов, повторение предложений и т. д., и это кажется сложным. В этих случаях сосредоточьтесь на небольших независимых задачах и посмотрите, сможете ли вы их выполнить. Например, умеют перебирать предложения.Вы проверяете циклы FOR, как вычислить длину вектора (массива ячеек), как индексировать массив ячеек, можете ли вы начать с

где вы просто проверяете, можете ли вы выполнять итерации, получать доступ к содержимому ячеек данных массива ячеек и т. д. Затем вам нужно научиться разделять предложения. Вместо того, чтобы пытаться интегрировать это в цикл, тренируйтесь, например. первое предложение. Вы гуглите, читаете мой пост, открываете для себя STRSPLIT, STRREP, STRCMP, STRCMPI и т. д., смотрите, как работает разделение, и пробуете разделить предложение, которое вы определили в вызове:

и вы смотрите на вывод, является ли это массивом ячеек, работает ли он и т. д. Затем вы пытаетесь обработать первое предложение и посмотреть, работает ли оно:

Хорошо, тогда было бы легко интегрировать это в цикл, но следующая задача – найти слово после заданного ключевого слова. Просматривая функции для работы со строками, вы понимаете, что STRCMP и STRCMPI могут работать, поэтому пробуете еще раз на простом примере:

и вы видите, что вы получаете то, что кажется массивом флагов. На самом деле это вектор логики (истина/ложь), являющийся результатом сравнения. Погуглив, вы обнаружите, что функция НАЙТИ может быть хорошим кандидатом для нахождения положения неложных элементов вектора и т. д.

Второй подход предполагает использование REGEXP (и динамического шаблона с ретроспективным представлением или токенов), но начинать с этого было бы контрпродуктивно.

num = xlsread(имя_файла) считывает первый рабочий лист электронной таблицы Microsoft® Excel® с именем имя_файла и возвращает числовые данные в виде матрицы.

num = xlsread(имя файла, лист) читает указанный рабочий лист.

num = xlsread(filename, xlRange) читает из указанного диапазона первого листа в книге. Используйте синтаксис диапазона Excel, например «A1:C3».

num = xlsread( имя файла , лист , xlRange ) читает из указанного рабочего листа и диапазона.

num = xlsread(filename, sheet, xlRange, 'basic') считывает данные из электронной таблицы в базовом режиме импорта. Если на вашем компьютере нет Excel для Windows® или вы используете MATLAB® Online™, xlsread автоматически работает в базовом режиме импорта, который поддерживает файлы XLS, XLSX, XLSM, XLTX и XLTM.

Если вы не укажете все аргументы, используйте пустые векторы символов, '' , в качестве заполнителей, например, num = xlsread(filename,'','','basic') .

[ num , txt , raw ] = xlsread( ___ ) дополнительно возвращает текстовые поля в массиве ячеек txt, а также числовые и текстовые данные в массиве ячеек raw, используя любой из входных аргументов в предыдущем синтаксисе.

___ = xlsread(filename,-1) открывает окно Excel для интерактивного выбора данных. Выберите рабочий лист, перетащите указатель мыши в нужный диапазон и нажмите «ОК». Этот синтаксис поддерживается только на компьютерах Windows с установленным программным обеспечением Microsoft Excel.

[ num , txt , raw , custom ] = xlsread( имя файла , лист , xlRange ,'', processFcn ) , где processFcn — дескриптор функции, считывает из электронной таблицы, вызывает processFcn для данных и возвращает окончательные результаты как числовые данные в массиве num . Функция xlsread возвращает текстовые поля в массиве ячеек txt, как числовые, так и текстовые данные в необработанном массиве ячеек, а также второй вывод из processFcn в пользовательском массиве. Функция xlsread не изменяет данные, хранящиеся в электронной таблице. Этот синтаксис поддерживается только на компьютерах Windows с программным обеспечением Excel.

Примеры

Чтение рабочего листа в числовую матрицу

Создайте файл Excel с именем myExample.xlsx .

Лист1 файла myExample.xlsx содержит:

Читать числовые данные с первого рабочего листа.

Чтение диапазона ячеек

Чтение определенного диапазона данных из файла Excel в предыдущем примере.

Читать столбец

Прочитайте второй столбец из файла Excel в первом примере.

Для повышения производительности включите номера строк в диапазон, например "B1:B3".

Запрос числовых, текстовых и необработанных данных

Запросите числовые данные, текстовые данные и комбинированные данные из файла Excel в первом примере.

Выполнение функции на рабочем листе

В редакторе создайте функцию для обработки данных с рабочего листа. В этом случае установите значения вне диапазона [0,2,0,8] на 0,2 или 0,8 .

В Командном окне добавьте случайные данные в myExample.xlsx .

Рабочий лист с именем MyData содержит значения от 0 до 1.

Прочитайте данные с листа и сбросьте все значения вне диапазона [0,2,0,8] . Укажите имя листа, но используйте '' в качестве заполнителей для xlRange и «базовых» входных данных.

Запрос пользовательского вывода

Выполнить функцию на листе и отобразить выходные данные пользовательского индекса.

В редакторе измените функцию setMinMax из предыдущего примера, чтобы она возвращала индексы измененных элементов (настраиваемый вывод).

Прочитайте данные из листа MyData и запросите выходные данные пользовательского индекса, idx .

Входные аргументы

filename — имя файла
вектор символов | строка

Имя файла в виде вектора символов или строки. Если вы не укажете расширение, xlsread ищет файл с указанным именем и поддерживаемым расширением Excel. xlsread может считывать данные, сохраненные в файлах, открытых в данный момент в Excel для Windows.

Пример: "myFile.xlsx" или "myFile.xlsx"

Типы данных: char | строка

лист — Рабочий лист
вектор символов | строка | положительное целое число

Рабочий лист в виде одного из следующих:

Вектор символов или строка, содержащая имя рабочего листа. Имя не может содержать двоеточие ( : ). Чтобы определить имена листов в файле электронной таблицы, используйте xlsfinfo. Для файлов XLS в базовом режиме лист чувствителен к регистру.

Положительное целое число, указывающее индекс рабочего листа. Этот параметр не поддерживается для файлов XLS в базовом режиме.

Типы данных: char | строка | сингл | двойной | интервал8 | интервал16 | интервал32 | интервал64 | uint8 | uint16 | uint32 | uint64

xlRange — Прямоугольный диапазон
вектор символов | строка

Прямоугольный диапазон в виде вектора символов или строки.

Укажите xlRange, используя два противоположных угла, которые определяют область для чтения. Например, «D2:H4» представляет собой прямоугольную область 3 на 5 между двумя углами D2 и H4 на рабочем листе. Ввод xlRange не чувствителен к регистру и использует справочный стиль Excel A1 (см. справку Excel).

Выбор диапазона не поддерживается при чтении файлов XLS в базовом режиме. В этом случае используйте '' вместо xlRange .

Если вы не укажете лист , то xlRange должен включать как углы, так и символ двоеточия, даже для одной ячейки (например, 'D2:D2' ). В противном случае xlsread интерпретирует ввод как имя рабочего листа (например, «продажи» или «D2»).

Если вы укажете лист , то xlRange :

Не нужно включать двоеточие и противоположный угол для описания одной ячейки.

Может ссылаться на именованный диапазон, который вы определили в файле Excel (см. справку Excel).

Когда указанный xlRange перекрывает объединенные ячейки:

На компьютерах Windows с Excel xlsread расширяет диапазон, чтобы включить все объединенные ячейки.

На компьютерах без Excel для Windows xlsread возвращает данные только для указанного диапазона с пустыми значениями или значениями NaN для объединенных ячеек.

Microsoft Excel предоставляет удобный способ ввода, хранения и организации большого количества данных. Перенос данных Excel в пакет технического анализа MathWork MATLAB открывает новый диапазон передовых методов анализа данных. MATLAB содержит удобные методы для простого импорта данных из MS Excel и других стандартных форматов данных.

Найдите файл данных Excel с расширением ".xls" на своем компьютере. MATLAB не может напрямую импортировать данные из исполняемого файла Excel и должен знать расположение файла данных для импорта. Если вы не можете найти нужный файл данных, обратитесь к системному администратору.

Откройте исполняемый файл MATLAB.

Запустите мастер импорта данных MATLAB, выбрав «Импорт данных» в меню «Файл» или введя команду «uiimport» в командную строку MATLAB.

Перейдите к файловой системе, чтобы выбрать файл данных Excel. Нажмите «Открыть» в диалоговом окне, чтобы MATLAB отобразил предварительный просмотр данных в файле.

Выберите нужный лист из файла Excel для импорта, используя переключатель в левой части диалогового окна мастера импорта. Выберите столбцы и строки из электронной таблицы, которые вы хотите импортировать, выбрав их в правой части диалогового окна мастера импорта.

Нажмите «Далее» в диалоговом окне, чтобы просмотреть импортированные переменные MATLAB. Отмените выбор любых переменных, которые вы не хотите импортировать, и переименуйте их в соответствии с вашими требованиями. Нажмите "Готово", чтобы завершить импорт данных Excel.

Используйте функцию "xlsread()" для импорта данных Excel в рабочий процесс без ввода данных пользователем.

[num_data, text_data, raw_data] = xlsread(my_filename, sheet_num, data_range);

Переменная "num_data" содержит числовой массив с числовыми данными из электронной таблицы. "text_data" содержит массив ячеек, массив с несколькими типами данных MATLAB, с текстовыми данными из электронной таблицы. Переменная "raw_data" содержит все данные в массиве ячеек.

Крис Дэниэлс рассказывает о достижениях в области питания и фитнеса в Интернете. Дэниелс имеет множество сертификатов и степеней, касающихся здоровья человека, потребностей в питании и спортивных результатов. Заядлый велосипедист, тяжелоатлет и пловец, Дэниэлс прошел путь фитнеса в роли спортсмена и тренера.

Команда ‘xls’ используется в Matlab для импорта и экспорта файлов Excel в Matlab. Мы можем создавать файлы Excel с помощью этой команды, а также читать файлы Excel с помощью этих команд. в Matlab есть две операции: одна — создавать файлы Excel, а другая — читать или открывать файлы Excel. Это команды xlsread и xlswrite. Команда Xlsread используется для чтения или открытия существующих файлов Excel в Matlab. Команда Xlswrite используется для записи или создания файлов Excel в Matlab. С помощью команды xlswrite мы также можем изменять содержимое существующих файлов Excel. Эта команда улучшает адаптивность языка Matlab за счет доступа к данным в других форматах.

Синтаксис:

Hadoop, наука о данных, статистика и др.

xlsread (имя файла)
xlsread (имя файла, список параметров)
xlsread (имя файла, [данные])
xlsread (имя файла, имя листа)
xlsread (имя файла, диапазон для столбцов или строк)

Как xlsread работает в Matlab?

Чтобы прочитать любой файл Excel в Matlab, сначала нам нужно создать этот файл с некоторыми данными. Существуют различные способы записи и чтения файлов Excel. Эти файлы можно записать, указав список параметров, прямые данные, указав имя листа или указав диапазон столбцов или строк.

Шаги для чтения файла Excel в Matlab –

  • Очистить рабочую область
  • Объявление и назначение данных
  • Запись в файл Excel с использованием синтаксиса xlsread( xlswrite (имя файла,[данные])
  • Объявить переменную для чтения файла
  • Используйте команду чтения xlsread, используя синтаксис. (xlsread (имя файла)).

Примеры xlsread Matlab

Следующие примеры приведены ниже:

В этом примере файл Excel называется «abc.xlsx», а данные, добавленные в файл, — [ 13 ,42, 53 ]. Таким образом, создается один файл Excel в текущем каталоге.

xlswrite('abc.xlsx',[13, 42, 53])

Вывод:

В этом примере входные данные объявляются с помощью другой переменной, которая называется «данные» (данные = [3 4 7 7;4 3 2 2;4 56 78 32]). Данные записываются в «файл1».

Данные = [3 4 7 7 ; 4 3 2 2 ; 4 56 78 32]

xlswrite('file1.xlsx', данные)

Вывод:

В этом примере входные данные объявляются с использованием еще двух переменных: data (data1= [3 54 47 ;4 33 22; 56 7 42;43 7 1] и data2=[56 4 2 ; 5 4 2; 67 4 1;1 01 1]. Данные записываются в 'file2'.

Обучение MATLAB (3 курса, 1 проект) 3 онлайн-курса | 1 практический проект | 8+ часов | Поддающийся проверке сертификат об окончании | Пожизненный доступ
4,5 (8 122 оценки)

Редактор Matlab Командное окно
Clc ;

данные1= [3 54 47 ; 4 33 22; 56 7 42 ; 43 7 1]

данные2 = [56 4 2 ; 5 4 2 ; 67 4 1 ; 1 01 1]

xlswrite(‘file2.xlsx’, [данные1; данные2])

Вывод:

В этом примере входные данные объявляются с использованием еще двух переменных, которые называются «данные» (data1= [3 54 47 ;4 33 22; 56 7 42;43 7 1] и data2=[56 4 2 ; 5 4 2;67 4 1;1 01 1]). Данные записываются в «файл1». Чтобы прочитать файл, мы используем функцию диапазона. Указав диапазон для конкретного файла, мы можем отображать только важные данные.

данные1 = [3 54 47 ;4 33 22; 56 7 42;43 7 1]

данные2 = [56 4 2 ; 5 4 2 ; 67 4 1 ; 1 01 1]

a = xlsread('file2.xlsx', r )

Вывод:

В этом примере входные данные объявляются с использованием еще двух переменных, которые называются «данные» (data1= [3 54 43 47; 4 33 32 22; 56 5 7 42; 11 23 7 1] и data2 = [56 4 2 4 ;0 5 4 2;67 1 4 1;1 01 1 1 ]). Данные записываются в «file3». Чтобы прочитать файл, мы используем функцию диапазона. Указав диапазон для конкретного файла, мы можем отображать только важные данные. Здесь значение начального диапазона и значение конечного диапазона совпадают, поэтому с помощью этого метода мы можем отображать только определенную строку или столбец.

data1= [3 54 43 47 ;4 33 32 22; 56 5 7 42;11 23 7 1]

data2=[56 4 2 4 ;0 5 4 2; 67 1 4 1;1 01 1 1]

Вывод:

Заключение

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

Рекомендуемые статьи

Это руководство по xlsread Matlab. Здесь мы также обсуждаем введение и как работает xlsread в Matlab? вместе с различными примерами и реализацией кода. вы также можете ознакомиться со следующими статьями, чтобы узнать больше –

Читайте также: