writetimetable

Запись timetable в файл

Описание

пример

writetimetable(TT) запишет TT timetable в текстовый файл с разделителем запятыми. Имя файла является именем переменной рабочей области расписания, добавленное с расширением .txt. Если writetimetable не удается создать имя файла из имени входа timetable, после чего он записывает его в файл timetable.txt.

Каждый столбец каждой переменной в TT становится столбцом в файле выхода. Имена переменных TT стать заголовками столбца в первой линии файла. The writetimetable функция перезаписывает любой существующий файл.

пример

writetimetable(TT,filename) записывает в файл с именем и расширением, заданными filename.

writetimetable определяет формат файла на основе заданного расширения. Расширение должно быть одним из следующих:

  • .txt, .dat, или .csv для текстовых файлов с разделителями

  • .xls, .xlsm, или .xlsx для Excel® файлы электронной таблицы

  • .xlsb для файлов электронной таблицы Excel, поддерживаемых в системах с Excel для Windows®

  • .xml для файлов расширяемого языка разметки (XML).

пример

writetimetable(___,Name,Value) использует дополнительные опции, заданные одним или несколькими Name,Value пар аргументов и может включать любой из входных параметров в предыдущих синтаксисах.

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

Примеры

свернуть все

Создайте расписание, запишите его в текстовый файл, разделенный запятыми, а затем запишите расписание в другой текстовый файл с другим символом разделителя.

Задайте расписание в рабочей области с вектором длительности в строку RowTimes.

RowTimes = seconds(1:5)';
TT = timetable(RowTimes,[98;97.5;97.9;98.1;97.9],[120;111;119;117;116],...
               'VariableNames',{'Reading1','Reading2'})
TT=5×2 timetable
    RowTimes    Reading1    Reading2
    ________    ________    ________

    1 sec           98        120   
    2 sec         97.5        111   
    3 sec         97.9        119   
    4 sec         98.1        117   
    5 sec         97.9        116   

Запишите расписание в текстовый файл с разделителем запятыми и отобразите содержимое файла. The writetimetable функция выводит текстовый файл с именем TT.txt.

writetimetable(TT)
type 'TT.txt'
RowTimes,Reading1,Reading2
1 sec,98,120
2 sec,97.5,111
3 sec,97.9,119
4 sec,98.1,117
5 sec,97.9,116

Чтобы записать то же расписание в текстовый файл с другим символом разделителя, используйте 'Delimiter' Пара "имя-значение".

writetimetable(TT,'TT_bar.txt','Delimiter','bar')
type 'TT_bar.txt'
RowTimes|Reading1|Reading2
1 sec|98|120
2 sec|97.5|111
3 sec|97.9|119
4 sec|98.1|117
5 sec|97.9|116

Создайте расписание, запишите его в файл электронной таблицы, а затем отобразите содержимое файла.

Задайте расписание в рабочей области с временами строк как datetime вектор.

Y = [2014:2018]'; M = ones(5,1); D = ones(5,1);
RowTimes = datetime(Y,M,D); % Create Row Times
TT = timetable(RowTimes,[98;97.5;97.9;98.1;97.9],[120;111;119;117;116],...
               'VariableNames',{'Reading1','Reading2'})
TT=5×2 timetable
     RowTimes      Reading1    Reading2
    ___________    ________    ________

    01-Jan-2014        98        120   
    01-Jan-2015      97.5        111   
    01-Jan-2016      97.9        119   
    01-Jan-2017      98.1        117   
    01-Jan-2018      97.9        116   

Запись таблицы в файл электронной таблицы 'TT.xlsx'. По умолчанию в writetimetable функция запишет первый лист в файл. Используйте 'Sheet' Пара "имя-значение", чтобы задать лист для записи.

writetimetable(TT,'TT.xlsx','Sheet',2)

Чтение и отображение содержимого файла.

readtimetable('TT.xlsx','Sheet',2) 
ans=5×2 timetable
          RowTimes          Reading1    Reading2
    ____________________    ________    ________

    01-Jan-2014 00:00:00        98        120   
    01-Jan-2015 00:00:00      97.5        111   
    01-Jan-2016 00:00:00      97.9        119   
    01-Jan-2017 00:00:00      98.1        117   
    01-Jan-2018 00:00:00      97.9        116   

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

свернуть все

Входное расписание.

Имя файла, заданное как вектор символов или строковый скаляр.

В зависимости от места, в котором вы пишете, filename может принять одну из этих форм.

Местоположение

Форма

Текущая папка

Чтобы записать в текущую папку, укажите имя файла в filename.

Пример: 'myTextFile.csv'

Другие папки

Чтобы записать в папку, отличную от текущей папки, укажите полное или относительное имя пути в filename.

Пример: 'C:\myFolder\myTextFile.csv'

Пример: 'myFolder\myExcelFile.xlsx'

Удаленное местоположение

Чтобы записать в удаленное место, filename должен содержать полный путь к файлу, заданному в качестве равномерного указателя ресурса (URL) формы:

scheme_name://path_to_file/ my_file.ext

Исходя из удаленного местоположения, scheme_name может быть одним из значений в этой таблице.

Удаленное местоположениеscheme_name
Амазонки S3™s3
Windows Azure® Хранилище больших двоичных объектовwasb, wasbs
HDFS™hdfs

Для получения дополнительной информации см. раздел Работа с удаленными данными.

Пример: 's3://bucketname/path_to_file/my_file.xlsx'

  • Если filename включает расширение файла, затем функция записи определяет формат файла из расширения. В противном случае функция записи создает текстовый файл, разделенный запятыми, и добавляет расширение .txt. Также можно задать filename без расширения файла, а затем включите 'FileType' аргументы пары "имя-значение" для указания типа файла.

  • Если filename не существует, тогда функция записи создает файл.

  • Если filename - имя существующего текстового файла, затем функция записи перезаписывает файл.

  • Если filename является именем существующего файла электронной таблицы, затем функция записи записывает данные в указанное место, но не перезаписывает значения за пределами области значений входных данных.

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

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'WriteVariableNames',false указывает, что имена переменных не должны быть включены в качестве первой строки выхода файла.
Текст и Файлы электронной таблицы

свернуть все

Тип файла, заданный как разделенная разделенными запятой парами, состоящая из 'FileType' и вектор символов или строка, содержащая 'text' или 'spreadsheet'.

The 'FileType' Пары "имя-значение" должны использоваться с filename входной параметр. Вам не нужно указывать 'FileType' аргумент пары "имя-значение", если filename входной параметр включает стандартное расширение файла. Следующие стандартные расширения файлов распознаются функцией записи:

  • .txt, .dat, или .csv для текстовых файлов с разделителями

  • .xls, .xlsm, или .xlsx для файлов электронной таблицы Excel

  • .xlsb для файлов электронной таблицы Excel, поддерживаемых в системах с Excel для Windows

Пример: 'FileType','spreadsheet'

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

Индикатор записи имен переменных в качестве заголовков столбца, заданный как разделенная разделенными запятой парами, состоящая из 'WriteVariableNames' и любой из них true или false.

Индикатор

Поведение

true

Функция записи включает имена переменных в качестве заголовков столбца выхода. Это поведение по умолчанию.

false

Функция записи не включает имена переменных в выход.

Локаль для записи дат, заданная как разделенная разделенными запятой парами, состоящая из 'DateLocale' и вектор символов или строковый скаляр. При записи datetime значения в файл, используйте DateLocale для определения локали, в которой writetimetable писать имена месяцев и дней недели и сокращений. Векторы символов или строка принимает форму xx_ YY, где xx является строчным двухбуквенным кодом ISO 639-1, указывающим на язык, и YY - заглавный код ISO 3166-1 альфа-2, указывающий страну. Список общих значений для локали см. в Locale аргумент пары "имя-значение" для datetime функция.

Функция записи игнорирует 'DateLocale' значение параметров всякий раз, когда даты могут быть записаны как даты в формате Excel.

Пример: 'DateLocale','ja_JP'

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

Режим записи, заданный как разделенная разделенными запятой парами, состоящая из 'WriteMode' и вектор символов или строковый скаляр. Выберите режим записи на основе типа файла.

Тип файла

Режим записи

Текстовые файлы

  • 'overwrite' (по умолчанию) - перезаписать файл.

  • 'append' - Добавить данные к файлу.

Если заданный вами файл не существует, то функция записи создает и записывает данные в новый файл.

Файлы электронной таблицы

  • 'inplace' (по умолчанию) - Обновляйте только диапазон, занимаемый входными данными. Функция записи не изменяет никаких данных за пределами области значений, занимаемой входными данными.

    • Если вы не задаете лист, то функция записи записывает на первый лист.

  • 'overwritesheet' - Очистить указанный лист и записать входные данные на очищенный лист.

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

  • 'append' - функция записи добавляет входные данные к нижней части занятой области значений заданного листа.

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

  • 'replacefile' - Удалите все другие листы из файла, затем очистите и запишите входные данные на указанный лист.

    • Если вы не задаете лист, то функция записи удаляет все другие листы из файла, а затем очищает и записывает входные данные на первый лист.

    • Если указанный вами файл не существует, функция записи создает новый файл и записывает входные данные на первый лист.

  • Когда WriteVariableNames установлено в trueфункция записи не поддерживает режим записи 'append'.

  • Для файлов электронной таблицы:

    • Когда режим записи 'append'функция записи не поддерживает Range параметр.

    • Если заданный вами файл не существует, то функция записи выполняет те же действия, что и 'replacefile'.

Пример: 'WriteMode','append'

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

Текстовые файлы только

свернуть все

Символ разделителя полей, заданный как разделенная разделенными запятой парами, состоящая из 'Delimiter' и вектор символов или строковый скаляр, содержащий один из следующих спецификаторов:

Спецификатор

Разделитель полей

','

'comma'

Запятая. Это поведение по умолчанию.

' '

'space'

Пространство

'\t'

'tab'

Вкладка

';'

'semi'

Точка с запятой

'|'

'bar'

Вертикальный брус

Можно использовать 'Delimiter' Пара "имя-значение" только для текстовых файлов с разделителями.

Пример: 'Delimiter','space'

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

Индикатор записи цитируемого текста, заданный как разделенная разделенными запятой парами, состоящая из 'QuoteStrings' и любой из них false или true. Если 'QuoteStrings' является true, затем функция записи заключает текст в двойные кавычки и заменяет любые символы с двойной кавычкой, которые появляются как часть этого текста, два символов с двойной кавычкой.

Можно использовать 'QuoteStrings' Пара "имя-значение" только с разделителями текстовых файлов.

Схема кодирования символов, сопоставленная с файлом, задается как разделенная разделенными запятой парами, состоящая из 'Encoding' и 'system' или стандартное имя схемы кодирования символов. Когда вы не задаете никакой кодировки, функция записи использует UTF-8 для записи файла.

Пример: 'Encoding','UTF-8' использует UTF-8 в качестве кодировки.

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

Только файлы электронной таблицы

свернуть все

Лист для записи, заданный как разделенная разделенными запятой парами, состоящая из 'Sheet' и вектор символов или строковый скаляр, содержащий имя листа или положительное целое число, указывающее индекс листа. Имя листа не может содержать двоеточие (:). Для определения имен листов в файле электронной таблицы используйте sheets = sheetnames(filename). Для получения дополнительной информации см. sheetnames.

Укажите лист для записи по имени или индексу:

  • name - Если заданное имя листа не существует в файле, функция записи добавляет новый лист в конец набора листов.

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

Можно использовать 'Sheet' Пара "имя-значение" только с файлами электронной таблицы.

Пример: 'Sheet', 2

Пример: 'Sheet', 'MySheetName'

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

Прямоугольный фрагмент листа для записи, заданная как разделенная разделенными запятой парами, состоящая из 'Range' и вектор символов или строковый скаляр в одной из следующих форм.

Форма значения Range Описание
'Corner1'

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

Пример: 'Range','D2'

'Corner1:Corner2'

Corner1 и Corner2 являются двумя противоположными углами, которые определяют область для записи. Для примера, 'D2:H4' представляет прямоугольную область 3 на 5 между двумя углами D2 и H4 на листе. The 'Range' аргумент пары "имя-значение" не чувствителен к регистру и использует стиль ссылки A1 Excel (см. справку Excel).

Пример: 'Range','D2:H4'

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

  • Если области значений, которую вы задаете, больше, чем размер входных данных, то функция записи оставляет оставшуюся часть области такой, какая она есть.

The 'Range' пара "имя-значение" может использоваться только с файлами Excel.

Пример: 'Range', 'A1:F10'

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

Флаг для запуска образца Microsoft® Excel для Windows при записи данных электронных таблиц, заданных как разделенная разделенными запятой парами, состоящая из 'UseExcel' и любой из них true, или false.

Можно задать 'UseExcel' параметр к одному из следующих значений:

  • true - функция записи запускает образец Microsoft Excel при записи файла.

  • false - Функция записи не запускает образец Microsoft Excel при записи файла. При работе в этом режиме функциональность для записи отличается поддержкой форматов файлов и интерактивных функций, таких как формулы и макросы.

UseExcel

true

false

Поддерживаемые форматы файлов

.xls, .xlsx, .xlsm, .xltx, .xltm, .xlsb, .ods

.xls, .xlsx, .xlsm, .xltx, .xltm

Поддержка интерактивных функций, таких как формулы и макросы

Да

Нет

При записи в файлы электронной таблицы на платформах Windows, если необходимо запустить образец Microsoft Excel, установите 'UseExcel' параметр в true.

Автоматическая настройка ширины столбца, заданная как true или false. Если вы задаете значение 0 или false, затем writetimetable не будет автоматически настраивать ширины столбцов в соответствии с данными камерами.

Пример: 'AutoFitWidth', 0

Сохраните форматирование камер существующей электронной таблицы, заданное как true или false. Если вы задаете false, writetimetable не сохраняет камеры форматирование электронной таблицы. Форматирование включает такие элементы, как шрифты, границы камер и затененные цветом камеры.

При записи datetime данные в файл электронной таблицы, необходимо задать оба 'PreserveFormat' и 'UseExcel' Пара "имя-значение" с true для сохранения существующего форматирования камер. Если 'UseExcel' установлено в false и 'PreserveFormat' установлено в true при записи datetime данные в файл, writetimetable не сохраняет существующее форматирование камер файла.

Пример: 'PreserveFormat', false

Только XML- Файлы

свернуть все

Суффикс атрибута, заданный как разделенная разделенными запятой парами, состоящая из 'AttributeSuffix' и векторы символов или строковый скаляр, указывающий, какие имена переменных в вход таблице записывать как атрибуты в выход XML- файл.

Для примера, для имени переменной AttName_att в вход таблице можно задать 'AttributeSuffix','_att' чтобы указать, что 'AttName' должен быть записан как атрибут в выход XML- файл.

  • Если вы не задаете 'AttributeSuffix', writetimetable по умолчанию используется запись переменных с помощью суффикса 'Attribute' как атрибуты в выход XML- файл.

  • Если атрибут задан как значение 'AttributeSuffix' соответствует суффиксу, добавленному к имени переменной в вход таблице, суффикс будет удален из имени переменной в выход XML- файла. Для примера, если вы задаете 'AttributeSuffix','_att', переменная в вход таблице с именем MyField_att будет соответствовать атрибуту с именем MyField в XML- файл.

Пример: 'AttributeSuffix','_att'

Имя узла строки XML, заданное как разделенная запятой пара, состоящее из 'RowNodeName' и вектор символов или строковый скаляр функции записи в качестве имени узла в выходе XML- файл, который соответствует строкам в вход таблице. Если вы не задаете RowNodeName, затем функция записи записывает 'row' как имя узлов строк в таблице выхода.

Пример: 'TableNodeName','RootName'

Имя корневого узла XML, заданное как разделенная разделенными запятой парами, состоящая из 'TableNodeName' и вектор символов или строковый скаляр функции записи в качестве имени корневого узла в выход XML- файл. Если вы не задаете TableNodeName, затем функция записи записывает 'table' как имя корневого узла в таблице выхода.

Пример: 'TableNodeName','RootName'

Ограничения

  • Чтобы задать 'PreserveFormat' Пара "имя-значение" с true, вы должны задать 'UseExcel' Пара "имя-значение" с true.

Алгоритмы

Существуют некоторые образцы, где writetimetable функция создает файл, который не представляет входные данные в точности. Вы заметите это, когда используете readtimetable функция для чтения этого файла. Получившиеся данные могут не иметь точно такого же формата или содержимого, как исходные данные. Если необходимо сохранить расписание и получить его позже, чтобы точно соответствовать исходному расписанию с теми же данными и организацией, сохраните его как MAT-файл. writetimetable записывает неточную таблицу в следующих образцах:

  • writetimetable записывает числовые данные с помощью long g формат, и категориальные или символьные данные в виде текста без кавычек.

  • writetimetable записывает переменные, которые имеют больше чем два измерения как двумерные переменные, с свёрнутыми последующими измерениями.

  • Для переменных, имеющих значение ячеек, writetimetable записывает переменные по-разному на основе типа данных содержимого в камеры.

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

    • В противном случае writetimetable функция записывает одно пустое поле.

Введенный в R2019a