writetable

Запись таблицы в файл

Синтаксис

writetable(T)
writetable(T,filename)
writetable(___,Name,Value)

Описание

пример

writetable(T) пишет таблицу T в файл разделенного текста запятой. Имя файла является именем переменной рабочей области таблицы, добавленной с дополнительным .txt txt . Если writetable не может создать имя файла из имени входной таблицы, то это пишет в файл table.txt txt .

Каждый столбец каждой переменной в T становится столбцом в выходном файле. Имена переменных T становятся заголовками столбцов в первой строке файла.

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

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

  • txt dat или .csv для файлов разделенного текста

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

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

пример

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

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

Примеры

свернуть все

Составление таблицы.

T = table(['M';'F';'M'],[45 45;41 32;40 34],...
    {'NY';'CA';'MA'},[true;false;false])
T=3×4 table
    Var1      Var2      Var3    Var4 
    ____    ________    ____    _____

     M      45    45    'NY'    true 
     F      41    32    'CA'    false
     M      40    34    'MA'    false

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

writetable(T)

writetable выводит текстовый файл под названием T.txt txt .

type 'T.txt'
Var1,Var2_1,Var2_2,Var3,Var4
M,45,45,NY,1
F,41,32,CA,0
M,40,34,MA,0

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

Составление таблицы.

T = table(['M';'F';'M'],[45 45;41 32;40 34],...
    {'NY';'CA';'MA'},[true;false;false])
T=3×4 table
    Var1      Var2      Var3    Var4 
    ____    ________    ____    _____

     M      45    45    'NY'    true 
     F      41    32    'CA'    false
     M      40    34    'MA'    false

Запишите таблицу в файл с именем разделенного текста пробела myData.txt и отобразите содержимое файла.

writetable(T,'myData.txt','Delimiter',' ')  
type 'myData.txt'
Var1 Var2_1 Var2_2 Var3 Var4
M 45 45 NY 1
F 41 32 CA 0
M 40 34 MA 0

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

Составление таблицы.

LastName = {'Smith';'Johnson';'Williams';'Jones';'Brown'};
Age = [38;43;38;40;49];
Height = [71;69;64;67;64];
Weight = [176;163;131;133;119];
BloodPressure = [124 93; 109 77; 125 83; 117 75; 122 80];

T = table(Age,Height,Weight,BloodPressure,...
    'RowNames',LastName)
T=5×4 table
                Age    Height    Weight    BloodPressure
                ___    ______    ______    _____________

    Smith       38       71       176       124     93  
    Johnson     43       69       163       109     77  
    Williams    38       64       131       125     83  
    Jones       40       67       133       117     75  
    Brown       49       64       119       122     80  

Запишите таблицу, T, к файлу разделенного текста запятой, названному myPatientData.dat, и отобразите содержимое файла.

writetable(T,'myPatientData.dat','WriteRowNames',true)  
type 'myPatientData.dat'
Row,Age,Height,Weight,BloodPressure_1,BloodPressure_2
Smith,38,71,176,124,93
Johnson,43,69,163,109,77
Williams,38,64,131,125,83
Jones,40,67,133,117,75
Brown,49,64,119,122,80

Первый столбец, который содержит имена строки, имеет заголовок столбца, Row. Это - первое имя размерности для таблицы из свойства T.Properties.DimensionNames .

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

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

D = datetime({'01-Jan-2014';'01-Feb-2014';'01-Mar-2014'});
D.Format = 'dd MMMM yyyy';
X1 = [20.2;21.6;20.7];
X2 = [100.5;102.7;99.8];
T = table(D,X1,X2)
T = 

           D             X1      X2  
    ________________    ____    _____

    01 January 2014     20.2    100.5
    01 February 2014    21.6    102.7
    01 March 2014       20.7     99.8

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

writetable(T,'myfile.txt','DateLocale','de_DE');
type myfile.txt
D,X1,X2
01 Januar 2014,20.2,100.5
01 Februar 2014,21.6,102.7
01 März 2014,20.7,99.8

Когда ваши данные содержат иностранный язык или символы неASCII, используйте параметр кодирования, чтобы гарантировать, что файл записан правильно. Во-первых, загрузите предоставленную таблицу в рабочую область. Затем запишите таблицу в файл с помощью кодировки по умолчанию. Наконец, запишите таблицу с помощью кодирования 'UTF-8' и исследуйте результат.

Загрузите Table_Japanese_Characters.mat, который содержит таблицу T. Предварительный просмотр таблицы показывают ниже. Заметьте, что таблица содержит два столбца с японскими символами.

load('Table_Japanese_Characters.mat')

Запишите таблицу в файл. Функция writetable использует ваше кодирование системного значения по умолчанию при записи файлов. Результаты могут отличаться на основе ваших параметров настройки системы. Чтобы исследовать получившийся файл, считайте таблицу назад в рабочую область при помощи функции readtable. Заметьте, что writetable не преуспел в том, чтобы писать столбцы (1 и 3) содержащий символы иностранного языка.

writetable(T,'myTable.txt')
myTable = readtable('myTable.txt')
myTable=9×3 table
      A        B          C   
    _____    ______    _______

    ''     458.98    ''  
    ''     530.14    ''  
    ''      289.4    ''  
    ''      434.81    ''
    ''    186.44    '' 
    ''           0    ''   
    ''      231.29    ''
    ''      311.86    ''
    ''     239.93    ''   

Если ваша таблица содержит иностранный язык или символы неASCII, необходимо использовать параметр 'Encoding', чтобы гарантировать, что данные записаны правильно. Установите 'Encoding' на 'UTF-8', который поддерживает широкий спектр символов неASCII и иностранного языка. Чтобы исследовать получившийся файл, считайте таблицу назад в рабочую область при помощи функции readtable. С правильным параметром кодирования функция writetable успешна в записи данных.

writetable(T,'myTable_UTF8.txt','Encoding','UTF-8')
myTable_UTF8 = readtable('myTable_UTF8.txt','Encoding','UTF-8')
myTable_UTF8=9×3 table
       A         B            C     
    _______    ______    ___________

    '南西'     458.98    '冬の嵐'    
    '南東'     530.14    '冬の嵐'    
    '南東'      289.4    '冬の嵐'    
    '西'       434.81    '機器の故障' 
    '中西部'    186.44    '深刻な嵐'  
    '西'            0    '攻撃'      
    '西'       231.29    '機器の故障' 
    '西'       311.86    '機器の故障' 
    '北東'     239.93    '火災'      

Составление таблицы.

T = table(['M';'F';'M'],[45;41;36],...
    {'New York, NY';'San Diego, CA';'Boston, MA'},[true;false;false])
T=3×4 table
    Var1    Var2         Var3          Var4 
    ____    ____    _______________    _____

     M       45     'New York, NY'     true 
     F       41     'San Diego, CA'    false
     M       36     'Boston, MA'       false

Запишите таблицу в разделенный от запятой текстовый файл под названием myData.csv и просмотрите содержимое файла. Используйте аргумент в виде пар "имя-значение" 'QuoteStrings', чтобы гарантировать, что запятые в третьем столбце не обработаны как разделители.

writetable(T,'myData.csv','Delimiter',',','QuoteStrings',true)
type 'myData.csv'
Var1,Var2,Var3,Var4
"M",45,"New York, NY",1
"F",41,"San Diego, CA",0
"M",36,"Boston, MA",0

Составление таблицы.

T = table(['M';'F';'M'],[45 45;41 32;40 34],...
    {'NY';'CA';'MA'},[true;false;false])
T=3×4 table
    Var1      Var2      Var3    Var4 
    ____    ________    ____    _____

     M      45    45    'NY'    true 
     F      41    32    'CA'    false
     M      40    34    'MA'    false

Запишите таблицу в электронную таблицу под названием myData.xls. Включайте данные по второму листу в области 5 на 5 с углами в B2 и F6.

writetable(T,'myData.xls','Sheet',2,'Range','B2:F6')

Excel® заполняет строку электронной таблицы от B6 до F6 с #N/A, поскольку заданная область значений больше, чем размер входной таблицы T.

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

свернуть все

Входные данные, заданные как таблица.

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

  • Если filename не существует, то writetable создает файл.

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

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

Пример: 'myData.xls' или "myData.xls"

Пример: C: \test\myData. txt

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Имя должно появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

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

свернуть все

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

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

  • txt dat или .csv для файлов разделенного текста

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

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

Пример: writetable (T, 'mySpreadsheet', 'Тип файла', 'электронная таблица')

Пример: writetable (T, 'mySpreadsheet', 'Тип файла', "электронная таблица")

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

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

Индикатор

Поведение

tRUE

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

Если и 'WriteVariableNames' и 'WriteRowNames', логическими индикаторами является true, то writetable использует первое имя размерности из свойства T.Properties.DimensionNames как заголовок столбца для первого столбца вывода.

ложь

writetable не включает имена переменных в вывод.

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

Индикатор

Поведение

ложь

writetable не включает имена строки от T в выводе. Это поведение по умолчанию.

tRUE

writetable включает имена строки от T как первый столбец вывода.

Если и 'WriteVariableNames' и 'WriteRowNames', логическими индикаторами является true, то writetable использует первое имя размерности из свойства T.Properties.DimensionNames как заголовок столбца для первого столбца вывода.

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

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

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

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

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

свернуть все

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

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

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

','

'comma'

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

' '

'space'

Пробел

T

'tab'

Вкладка

';'

'semi'

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

'|'

панель

Вертикальная панель

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

Пример: 'Разделитель', 'пробел' или 'Разделитель', "пробел"

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

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

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

Схема кодировки символов, сопоставленная с файлом, заданным как пара, разделенная запятой, состоящая из 'Encoding' и 'system' или схемы кодирования стандартного символа, называет как одно из значений в этой таблице. Когда вы не задаете кодирования или задаете кодирование как 'system', функция writetable использует ваше кодирование системного значения по умолчанию, чтобы записать файл.

'Big5'

'ISO-8859-1'

'windows-847'

'Big5-HKSCS'

'ISO-8859-2'

'windows-949'

'CP949'

'ISO-8859-3'

'windows-1250'

'EUC-KR'

'ISO-8859-4'

'windows-1251'

'EUC-JP'

'ISO-8859-5'

'windows-1252'

'EUC-TW'

'ISO-8859-6'

'windows-1253'

'GB18030'

'ISO-8859-7'

'windows-1254'

'GB2312'

'ISO-8859-8'

'windows-1255'

'GBK'

'ISO-8859-9'

'windows-1256'

'IBM866'

'ISO-8859-11'

'windows-1257'

'KOI8-R'

'ISO-8859-13'

'windows-1258'

'KOI8-U'

'ISO-8859-15'

'US-ASCII'

 

'Macintosh'

'UTF-8'

 

'Shift_JIS'

 

Пример: 'система' или "система" используют кодирование системного значения по умолчанию.

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

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

свернуть все

Рабочий лист, чтобы записать в, заданный как пара, разделенная запятой, состоящая из 'Sheet' и вектора символа или скаляра строки, содержащего имя рабочего листа или положительное целое число, указывающее на индекс рабочего листа. Имя рабочего листа не может содержать двоеточие (:). Чтобы определить имена листов в файле электронной таблицы, используйте [status,sheets] = xlsfinfo(filename).

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

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

Пример: 'Покройте', 2

Пример: 'Лист', 'MySheetName'

Типы данных: char | представляет в виде строки | единственный | дважды | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

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

Corner1 задает первую ячейку области, чтобы записать. writetable пишет таблицу T, начинающуюся в этой ячейке.

Пример: 'Расположитесь', 'D2'

'Corner1:Corner2'

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

Пример: 'Расположитесь', 'D2:H4'

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

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

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

Пример: 'Расположитесь', 'A1:F10'

Пример: 'Расположитесь', "A1:F10"

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

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

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

Можно установить параметр 'UseExcel' на одно из этих значений:

  • tRUE Функция writetable запускает экземпляр Microsoft Excel при записи файла. Эта установка является значением по умолчанию для систем Windows с установленным Excel.

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

UseExcel

tRUE

ложь

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

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

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

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

Да

Нет

Ограничения

Алгоритмы

  • Excel преобразовывает значения Inf в 65535. MATLAB® преобразовывает NaN, NaT, <undefined> категориальные значения и значения строки <missing> к пустым ячейкам.

  • Для файлов Excel writetable пишет переменные table, содержащие массивы datetime как даты Excel. Если table содержит массивы datetime с годами или до 1 900 или до 1904, то writetable пишет переменные как текст. Для получения дополнительной информации о датах Excel смотрите https://support.microsoft.com/en-us/kb/214330.

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

    • При записи в текстовые файлы, writetable числовые переменные выходных параметров с помощью формата long g и категориальных или символьных переменных как закрывшие кавычки символы.

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

    • Для выходных переменных, которые имеют больше чем две размерности, writetable выходные параметры эти переменные как двумерные, где последующие измерения сворачиваются. Например, writetable выходные параметры 4 3 2 переменными, как будто ее размер был 4 6.

    • Для переменных с типом данных cell, writetable выходные параметры содержимое каждой ячейки как одна строка, в нескольких полях. Если содержимое отличается числовой, логический, символ, или категориальный, то writetable выходные параметры единственное пустое поле.

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

|

Введенный в R2013b

Была ли эта тема полезной?