exponenta event banner

writetimetable

Запись расписания в файл

Описание

пример

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

Каждый столбец каждой переменной в TT становится столбцом в выходном файле. Имена переменных TT становятся заголовками столбцов в первой строке файла. 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   

Запишите расписание в текстовый файл с разделителями-запятыми и просмотрите его содержимое. 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'.

'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 - если указанное имя листа не существует в файле, функция записи добавляет новый лист в конце коллекции листов.

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

Вы можете использовать '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 на листе. 'Range' аргумент пары имя-значение не чувствителен к регистру и использует стиль ссылки A1 Excel (см. справку Excel).

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

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

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

'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 записывает переменные по-разному в зависимости от типа данных содержимого в ячейках.

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

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

Представлен в R2019a