Как в матлаб загрузить данные из файла
Перейти к содержимому

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

  • автор:

Документация

Текстовые файлы часто содержат соединение числовых и текстовых данных, а также переменной и имен строки, который лучше всего представлен в MATLAB ® как таблица. Можно импортировать табличные данные из текстовых файлов в таблицу с помощью Import Tool или readtable функция.

Импортируйте текстовые файлы Используя Import Tool

Import Tool позволяет вам импортировать в таблицу или другой тип данных. Например, считайте подмножество данных из файла примера airlinesmall.csv . Откройте файл с помощью Import Tool и выберите опции, такие как область значений данных, чтобы импортировать и выходной тип. Затем нажмите на кнопку Import Selection , чтобы импортировать данные в рабочее пространство MATLAB.

Импортируйте текстовые файлы Используя readtable

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

T = readtable('airlinesmall.csv');

Отобразите первые пять строк и столбцов из таблицы.

T(1:5,1:5)

ans = 5×5 table Year Month DayofMonth DayOfWeek DepTime ____ _____ __________ _________ ________ 1987 10 21 3 1987 10 26 1 1987 10 23 5 1987 10 23 5 1987 10 22 4

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

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

Тип данных Выхода Функция
Расписание readtimetable
Числовая матрица readmatrix
CellArray readcell
Отдельные вектор-столбцы readvars

Смотрите также

Похожие темы

  • Считайте данные о текстовом файле Используя Import Tool
  • Импортируйте смешанные данные из текстового файла в таблицу
  • Доступ к данным в таблицах

Документация MATLAB

Поддержка

  • MATLAB Answers
  • Помощь в установке
  • Отчеты об ошибках
  • Требования к продукту
  • Загрузка программного обеспечения

© 1994-2021 The MathWorks, Inc.

  • Условия использования
  • Патенты
  • Торговые марки
  • Список благодарностей

Для просмотра документации необходимо авторизоваться на сайте
Войти
Памятка переводчика

1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.

2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.

3. Сохраняйте структуру оригинального текста — например, не разбивайте одно предложение на два.

4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.

5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.

importdata

A = importdata( filename ) данные о загрузках в массив A .

A = importdata(‘-pastespecial’) данные о загрузках из системного буфера обмена, а не из файла.

A = importdata( ___ , delimiterIn ) интерпретирует delimiterIn как разделитель столбцов в ASCII-файле, filename , или данные о буфере обмена. Можно использовать delimiterIn с любым из входных параметров в вышеупомянутых синтаксисах.

A = importdata( ___ , delimiterIn , headerlinesIn ) данные о загрузках из ASCII-файла, filename , или буфер обмена, считывая числовые данные, начинающие с линии headerlinesIn+1 .

[ A , delimiterOut , headerlinesOut ] = importdata( ___ ) дополнительно возвращает обнаруженный символ-разделитель для входа ASCII-файл в delimiterOut и обнаруженное количество линий заголовка в headerlinesOut , использование любого из входных параметров в предыдущих синтаксисах.

Примеры

Импорт и отображение изображения

Импортируйте и отобразите демонстрационное изображение, ngc6543a.jpg .

A = importdata('ngc6543a.jpg'); image(A)

Figure contains an axes object. The axes object contains an object of type image.

Выход, A , класс uint8 потому что функция помощника, imread , возвращает пустые результаты для colormap и alpha .

Импорт текстового файла и определение разделителя и заголовка столбца

Используя текстовый редактор, создайте разграниченный пробелом ASCII-файл с заголовками столбцов под названием myfile01.txt .

Day1 Day2 Day3 Day4 Day5 Day6 Day7 95.01 76.21 61.54 40.57 5.79 20.28 1.53 23.11 45.65 79.19 93.55 35.29 19.87 74.68 60.68 1.85 92.18 91.69 81.32 60.38 44.51 48.60 82.14 73.82 41.03 0.99 27.22 93.18 89.13 44.47 17.63 89.36 13.89 19.88 46.60

Импортируйте файл, задав разделитель пробела и заголовок отдельного столбца.

filename = 'myfile01.txt'; delimiterIn = ' '; headerlinesIn = 1; A = importdata(filename,delimiterIn,headerlinesIn);

Просмотрите столбцы 3 и 5.

for k = [3, 5] disp(A.colheaders) disp(A.data(:, k)) disp(' ') end 
Day3 61.5400 79.1900 92.1800 73.8200 17.6300 Day5 5.7900 35.2900 81.3200 0.9900 13.8900

Импорт текстового файла и возврат обнаруженного разделителя

Используя текстовый редактор, создайте разграниченный запятой ASCII-файл по имени myfile02.txt .

1,2,3 4,5,6 7,8,9

Импортируйте файл и отобразите выходные данные и обнаруженный символ-разделитель.

filename = 'myfile02.txt'; [A,delimiterOut]=importdata(filename)
A = 1 2 3 4 5 6 7 8 9 delimiterOut = ,

Импортирование данных от буфера обмена

Скопируйте следующие строки к буферу обмена. Выберите текст, щелкните правой кнопкой, и затем выберите Copy.

1,2,3 4,5,6 7,8,9

Импортируйте данные о буфере обмена в MATLAB ® путем ввода следующего.

A = importdata('-pastespecial')
A = 1 2 3 4 5 6 7 8 9

Входные параметры

filename — Имя и расширение файла, чтобы импортировать
вектор символов | строковый скаляр

Имя и расширение файла, чтобы импортировать в виде вектора символов или строкового скаляра. Если importdata распознает расширение файла, оно вызывает функцию помощника MATLAB, спроектированную, чтобы импортировать связанный формат файла (такой как load для MAT-файлов или xlsread для электронных таблиц). В противном случае, importdata интерпретирует файл как разграниченный ASCII-файл.

Для ASCII-файлов и электронных таблиц, importdata ожидает находить числовые данные в прямоугольной форме (то есть, как матрица). Заголовки текста могут появиться выше или слева от числовых данных, можно следующим образом:

  • Заголовки столбцов или текст описания файла наверху файла, выше числовых данных.
  • Заголовки строки слева от числовых данных.

Пример: ‘myFile.jpg’

Типы данных: char | string

delimiterIn — Символ разделителя столбцов
вектор символов | строковый скаляр

Символ разделителя столбцов в виде вектора символов или строкового скаляра. Символ по умолчанию интерпретирован из файла. Используйте ‘\t’ для вкладки.

Пример: ‘,’

Пример: ‘ ‘

Типы данных: char | string

headerlinesIn — Количество линий заголовка текста в ASCII-файле
неотрицательное скалярное целое число

Количество линий заголовка текста в ASCII-файле в виде неотрицательного скалярного целого числа. Если вы не задаете headerlinesIn , importdata функция обнаруживает это значение в файле.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

A — Данные из файла
матрица | многомерный массив | скалярный массив структур

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

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

Одно поле для каждой переменной

Сопоставленный с каждой переменной.

ASCII-файлы и электронные таблицы

data
textdata
colheaders
rowheaders

Для ASCII-файлов, data содержит double массив. Другие поля содержат cell массивы векторов символов. textdata включает заголовки строки и столбца.
Для электронных таблиц каждое поле содержит struct , с одним полем для каждого рабочего листа.

cdata
colormap
alpha

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

Если ASCII-файл или электронная таблица содержат или столбец или заголовки строки, но не обоих, importdata возвращает colheaders или rowheaders поле в структуре output, где:

  • colheaders содержит только последнюю линию текста заголовка столбца. importdata хранилища весь текст в textdata поле .
  • rowheaders создается только, когда файл или рабочий лист содержат отдельный столбец заголовков строки.

delimiterOut — Обнаруженный разделитель столбцов во входе ASCII-файл
символьный вектор

Обнаруженный разделитель столбцов во входе ASCII-файл, возвращенный как вектор символов.

headerlinesOut — Обнаруженное количество линий заголовка текста во входе ASCII-файл
целое число

Обнаруженное количество линий заголовка текста во входе ASCII-файл, возвращенный как целое число.

Советы

  • Импортировать ASCII-файлы с нечисловыми символами за пределами столбца или заголовков строки, включая столбцы символьных данных или отформатированных дат или времена, использование readtable вместо importdata .

Смотрите также

Темы

  • Поддерживаемые форматы файлов для импорта и экспорта
  • Импортируйте текстовые файлы
  • Импортируйте электронные таблицы
  • Импорт или экспорт последовательность файлов

Представлено до R2006a

Открытый пример

У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?

Документация MATLAB

Поддержка

  • MATLAB Answers
  • Помощь в установке
  • Отчеты об ошибках
  • Требования к продукту
  • Загрузка программного обеспечения

© 1994-2021 The MathWorks, Inc.

  • Условия использования
  • Патенты
  • Торговые марки
  • Список благодарностей

Для просмотра документации необходимо авторизоваться на сайте
Войти
Памятка переводчика

1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.

2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.

3. Сохраняйте структуру оригинального текста — например, не разбивайте одно предложение на два.

4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.

5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.

MATLAB – импорт данных

Загружает данные в массив A из файла, обозначенного именем файла .

A = importdata (‘- pastespecial’)

Загружает данные из системного буфера обмена, а не из файла.

A = importdata (___, delimiterIn)

Интерпретирует delimiterIn как разделитель столбцов в файле ASCII, имени файла или данных буфера обмена. Вы можете использовать delimiterIn с любым из входных аргументов в приведенных выше синтаксисах.

A = importdata (___, delimiterIn, headerlinesIn)

Загружает данные из файла ASCII, имени файла или буфера обмена, считывая числовые данные, начиная со строки headerlinesIn + 1 .

[A, delimiterOut, headerlinesOut] = importdata (___)

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

A = importdata (имя файла)

Загружает данные в массив A из файла, обозначенного именем файла .

A = importdata (‘- pastespecial’)

Загружает данные из системного буфера обмена, а не из файла.

A = importdata (___, delimiterIn)

Интерпретирует delimiterIn как разделитель столбцов в файле ASCII, имени файла или данных буфера обмена. Вы можете использовать delimiterIn с любым из входных аргументов в приведенных выше синтаксисах.

A = importdata (___, delimiterIn, headerlinesIn)

Загружает данные из файла ASCII, имени файла или буфера обмена, считывая числовые данные, начиная со строки headerlinesIn + 1 .

[A, delimiterOut, headerlinesOut] = importdata (___)

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

По умолчанию Octave не поддерживает функцию importdata () , поэтому вам придется искать и устанавливать этот пакет, чтобы следующие примеры работали с вашей установкой Octave.

Пример 1

Давайте загрузим и отобразим файл изображения. Создайте файл сценария и введите в нем следующий код –

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

Когда вы запускаете файл, MATLAB отображает файл изображения. Однако вы должны сохранить его в текущем каталоге.

Импорт файлов Imange

Пример 2

В этом примере мы импортируем текстовый файл и указываем разделитель и заголовок столбца. Давайте создадим ASCII-файл, разделенный пробелами, с заголовками столбцов с именем weeklydata.txt .

Наш текстовый файл weeklydata.txt выглядит так –

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 60.68 41.85 92.18 91.69 81.32 90.38 74.51 48.60 82.14 73.82 41.03 0.99 67.22 93.18 89.13 44.47 57.63 89.36 13.89 19.88 46.60

Создайте файл сценария и введите в нем следующий код –

filename = 'weeklydata.txt'; delimiterIn = ' '; headerlinesIn = 1; A = importdata(filename,delimiterIn,headerlinesIn); % View data for k = [1:7] disp(A.colheaders1, k>) disp(A.data(:, k)) disp(' ') end

Когда вы запускаете файл, он показывает следующий результат –

SunDay 95.0100 73.1100 60.6800 48.6000 89.1300 MonDay 76.2100 45.6500 41.8500 82.1400 44.4700 TuesDay 61.5400 79.1900 92.1800 73.8200 57.6300 WednesDay 40.5700 93.5500 91.6900 41.0300 89.3600 ThursDay 55.7900 75.2900 81.3200 0.9900 13.8900 FriDay 70.2800 69.8700 90.3800 67.2200 19.8800 SaturDay 81.5300 74.6800 74.5100 93.1800 46.6000

Пример 3

В этом примере давайте импортируем данные из буфера обмена.

Скопируйте следующие строки в буфер обмена –

Математика проста

Создайте файл сценария и введите следующий код –

A = importdata('-pastespecial')

Когда вы запускаете файл, он показывает следующий результат –

A = 'Mathematics is simple'

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

Функция importdata является высокоуровневой функцией. Низкоуровневые функции ввода / вывода файлов в MATLAB позволяют максимально контролировать чтение или запись данных в файл. Однако эти функции нуждаются в более подробной информации о вашем файле для эффективной работы.

MATLAB предоставляет следующие функции для операций чтения и записи на уровне байтов или символов:

функция Описание
fclose Закройте один или все открытые файлы
feof Тест на конец файла
FERROR Информация об ошибках файлового ввода-вывода
fgetl Чтение строки из файла, удаление символов новой строки
fgets Читать строку из файла, сохраняя символы новой строки
Еореп Откройте файл или получите информацию об открытых файлах
fprintf Записать данные в текстовый файл
Fread Чтение данных из двоичного файла
frewind Переместить индикатор положения файла в начало открытого файла
fscanf Читать данные из текстового файла
FSEEK Переместить в указанную позицию в файле
ftell Положение в открытом файле
FWRITE Записать данные в двоичный файл

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

MATLAB предоставляет следующие функции для низкоуровневого импорта файлов текстовых данных –

  • Функция fscanf читает отформатированные данные в текстовом или ASCII-файле.
  • Функции fgetl и fgets читают по одной строке файла за раз, где символ новой строки разделяет каждую строку.
  • Функция fread считывает поток данных на уровне байтов или битов.

Функция fscanf читает отформатированные данные в текстовом или ASCII-файле.

Функции fgetl и fgets читают по одной строке файла за раз, где символ новой строки разделяет каждую строку.

Функция fread считывает поток данных на уровне байтов или битов.

пример

У нас есть текстовый файл данных «myfile.txt», сохраненный в нашем рабочем каталоге. Файл хранит данные об осадках за три месяца; Июнь, июль и август за 2012 год.

Данные в myfile.txt содержат повторные наборы измерений времени, месяца и количества осадков в пяти местах. Данные заголовка хранят количество месяцев M; таким образом, у нас есть M наборов измерений.

Файл выглядит так –

Rainfall Data Months: June, July, August M = 3 12:00:00 June-2012 17.21 28.52 39.78 16.55 23.67 19.15 0.35 17.57 NaN 12.01 17.92 28.49 17.40 17.06 11.09 9.59 9.33 NaN 0.31 0.23 10.46 13.17 NaN 14.89 19.33 20.97 19.50 17.65 14.45 14.00 18.23 10.34 17.95 16.46 19.34 09:10:02 July-2012 12.76 16.94 14.38 11.86 16.89 20.46 23.17 NaN 24.89 19.33 30.97 49.50 47.65 24.45 34.00 18.23 30.34 27.95 16.46 19.34 30.46 33.17 NaN 34.89 29.33 30.97 49.50 47.65 24.45 34.00 28.67 30.34 27.95 36.46 29.34 15:03:40 August-2012 17.09 16.55 19.59 17.25 19.22 17.54 11.45 13.48 22.55 24.01 NaN 21.19 25.85 25.05 27.21 26.79 24.98 12.23 16.99 18.67 17.54 11.45 13.48 22.55 24.01 NaN 21.19 25.85 25.05 27.21 26.79 24.98 12.23 16.99 18.67

Мы импортируем данные из этого файла и отображаем эти данные. Сделайте следующие шаги –

  • Откройте файл с помощью функции fopen и получите идентификатор файла.
  • Опишите данные в файле с помощью спецификаторов формата , таких как « % s » для строки, « % d » для целого числа или « % f » для числа с плавающей запятой.
  • Чтобы пропустить буквенные символы в файле, включите их в описание формата. Чтобы пропустить поле данных, используйте звездочку (‘*’) в спецификаторе. Например, чтобы прочитать заголовки и вернуть единственное значение для M, мы пишем –

M = fscanf(fid, '%*s %*s\n%*s %*s %*s %*s\nM=%d\n\n', 1);

Откройте файл с помощью функции fopen и получите идентификатор файла.

Опишите данные в файле с помощью спецификаторов формата , таких как « % s » для строки, « % d » для целого числа или « % f » для числа с плавающей запятой.

Чтобы пропустить буквенные символы в файле, включите их в описание формата. Чтобы пропустить поле данных, используйте звездочку (‘*’) в спецификаторе.

Например, чтобы прочитать заголовки и вернуть единственное значение для M, мы пишем –

По умолчанию fscanf считывает данные в соответствии с нашим описанием формата, пока не найдет совпадения для данных или не достигнет конца файла. Здесь мы будем использовать цикл для чтения 3 наборов данных и каждый раз будем читать 7 строк и 5 столбцов.

Мы создадим структуру с именем mydata в рабочей области для хранения данных, считанных из файла. Эта структура имеет три поля – время , месяц и массив raindata .

Создайте файл сценария и введите в нем следующий код –

filename = '/data/myfile.txt'; rows = 7; cols = 5; % open the file fid = fopen(filename); % read the file headers, find M (number of months) M = fscanf(fid, '%*s %*s\n%*s %*s %*s %*s\nM=%d\n\n', 1); % read each set of measurements for n = 1:M mydata(n).time = fscanf(fid, '%s', 1); mydata(n).month = fscanf(fid, '%s', 1); % fscanf fills the array in column order, % so transpose the results 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 % close the file fclose(fid);

Когда вы запускаете файл, он показывает следующий результат –

Импорт и экспорт данных

Функция dlmread (чтение из текстовых файлов) предназначена для чтения матриц из текстовых файлов. Первый аргумент функции – имя файла. Результат записывается в матрицу.

>> a = dlmread('mat1.txt') a = 1 2 3 4 5 6 7 8 9 10 11 12 

Вторым аргументом можно явно указать разделитель чисел в файле, например ‘,’

>> b = dlmread('mat2.txt',','); 

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

>> size(b) ans = 3 2 

Чтобы узнать общее число прочитанных чисел можно перемножив размеры матрицы, используя функцию prod

>> prod(size(b)) ans = 6 

или использовать функцию numel (количество всех элементов)

>> numel(b) ans = 6 

Третий и четвертый аргумент dlmread смещение строки и столбца, начиная с которых нужно начинать считывать данные из файла. Например, чтобы пропустить 1 строку и один столбец, необходимо вызвать функцию со следующими дополнительными параметрами

>> b = dlmread('mat2.txt',',', 1, 1) b = 5 6 8 9 11 12 

Чтение данных из Excel файлов

Для чтение данных из XLS файлов используется функция xlsread

>> xlsNum = xlsread('Данные.xlsx'); >> xlsNum 5 6 8 9 11 12 

### Функция readtable

Функция позволяет импортировать таблицы из файлов различных форматов. В отличие от результата работы функции xlsread результатом работы функции readtable является объект table, который содержит дополнительную информацию о таблице: об именах столбцов, строк. Без дополнительных указаний функция readtable считает, что в первой строке таблицы записаны имена её столбцов.

В рабочем каталоге MATLAB находится xls-файл следующего на листе “Лист1” которого находятся следующие данные:

Результатом работы функции readtable будет таблица (объект table)

>> data = readtable('Книга1.xlsx') data = 3×3 table Var1 COL1 COL2 ______ ____ ____ 'ROW1' 1.5 2 'ROW2' 1.6 3 'ROW3' 1.9 4 

Первая строка в первом столбце таблицы не содержит никаких значений (ячейка А1 пустая), поэтому первому столбцу было присвоено имя автоматически Var1. Второй и третий столбцы в таблице имеют имена COL1 и COL2 соответственно. Функция readtable рассматривает эти значения как имена столбцов. Если такое поведение функции readtable нежелательно, то можно передать функции значение ‘ReadVariableNames’ равное false

>> data = readtable('Книга1.xlsx', 'ReadVariableNames', false) data = 4×3 table Var1 Var2 Var3 ______ ______ ______ '' 'COL1' 'COL2' 'ROW1' '1.5' '2' 'ROW2' '1.6' '3' 'ROW3' '1.9' '4' 

Видно, что в этом случае, поскольку столбцы исходной таблицы в таком представлении содержат неоднородные данные (и числа и строки), все значения в столбцах рассматриваются как строковые без попыток их преобразования в числовые значения. Для корректного чтения данных из таблицы ‘Книга1.xlsx’ необходимо использовать поведение функции readtable по умолчанию, т.е.

>> data = readtable('Книга1.xlsx') data = 3×3 table Var1 COL1 COL2 ______ ____ ____ 'ROW1' 1.5 2 'ROW2' 1.6 3 'ROW3' 1.9 4 

В этом случае можно получить содержимое столбца, используя его имя. Например data.COL1 представляет собой матрицу столбец

>> data.COL1 ans = 1.5000 1.6000 1.9000 

Столбец data.Var1 это матрица ячеек, содержащая строковые значения

>> data.Var1 ans = 3×1 cell array 'ROW1'> 'ROW2'> 'ROW3'> 

Список имен столбцов содержится в атрибуте (свойстве) таблицы data.VariableNames, которое считывается следующим образом

>> data.Properties.VariableNames ans = 1×3 cell array 'Var1'> 'COL1'> 'COL2'> 

Для того, чтобы значения в первом столбце рассматривались как имена строк, необходимо использовать опцию ReadRowNames

>> data = readtable('Книга1.xlsx','ReadRowNames',true) data = 3×2 table COL1 COL2 ____ ____ ROW1 1.5 2 ROW2 1.6 3 ROW3 1.9 4 

Для чтения извлечения данных из строки по её имени используется следующий синтаксис

>> data('ROW1',:) ans = 1×2 table COL1 COL2 ____ ____ ROW1 1.5 2 

Результатом является объект типа table. Можно извлечь несколько строк по их именам, например так

>> data('ROW1', 'ROW2'>,:) ans = 2×2 table COL1 COL2 ____ ____ ROW1 1.5 2 ROW2 1.6 3 

Чтобы извлечь данные в виде матрицы необходимо использовать свойство таблицы Variables

>> data('ROW1',:).Variables ans = 1.5000 2.0000 

Для исходной таблицы это свойство вернет все числовые значения в виде матрицы

>> data.Variables ans = 1.5000 2.0000 1.6000 3.0000 1.9000 4.0000 

Экспорт данных

Сохранение таблицы в файле ‘data.txt’

writetable(data,'data.txt') 

Сохранение в файле имён строк

writetable(data,'data.txt','WriteRowNames',true) 

© 2023. All rights reserved.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *