Как загрузить данные из файла 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 | Командное окно td> |
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? вместе с различными примерами и реализацией кода. вы также можете ознакомиться со следующими статьями, чтобы узнать больше –
Читайте также: