exponenta event banner

writetable

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

Описание

пример

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

Для текстовых файлов и файлов электронных таблиц каждый столбец каждой переменной в T становится набором узлов XML в выходном файле. Для XML-файлов каждый столбец в T становится узлом XML в выходном файле. Имена переменных T становятся именами узлов элементов в выходном XML-файле.

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

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

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

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

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

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

пример

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.

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',1,'Range','B2:F6')

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

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

Создайте таблицу, содержащую три переменные с произвольными именами переменных. Имена первой и третьей переменных содержат пробелы и символы, не относящиеся к ASCII.

LastName = {'Sanchez';'Johnson';'Li';'Diaz';'Brown'};
Age = [38;43;38;40;49];
Smoker = logical([1;0;1;0;1]);
varNames = {'Last Name','Age','Smoker (1 or 0)'};
T = table(LastName,Age,Smoker,'VariableNames',varNames)
T=5×3 table
     Last Name     Age    Smoker (1 or 0)
    ___________    ___    _______________

    {'Sanchez'}    38          true      
    {'Johnson'}    43          false     
    {'Li'     }    38          true      
    {'Diaz'   }    40          false     
    {'Brown'  }    49          true      

Запись данных в файл 'sampletable.txt'.

writetable(T,'sampletable.txt')

Считывание табличных данных с помощью readtable. По умолчанию MATLAB ® преобразует любые имена переменных, содержащие пробелы и символы, не относящиеся к ASCII, в допустимые идентификаторы MATLAB ®. Например, MATLAB ® преобразует имена переменных'Last Name' кому 'LastName', и 'Smoker (1 or 0)' кому 'Smoker_1or0_'. Чтобы считывать табличные данные с сохранением имен переменных, установите 'VariableNamingRule' параметр для preserve.

T_preserve = readtable('sampletable.txt',"VariableNamingRule","preserve")
T_preserve=5×3 table
     Last Name     Age    Smoker (1 or 0)
    ___________    ___    _______________

    {'Sanchez'}    38            1       
    {'Johnson'}    43            0       
    {'Li'     }    38            1       
    {'Diaz'   }    40            0       
    {'Brown'  }    49            1       

Добавление данных в виде новой строки в нижнюю часть таблицы с существующими данными.

Создайте таблицу.

InsectSpecies = {'Monarch Butterfly';'Seven-spot Ladybird';'Orchid Mantis';...
    'American Bumblebee';'Blue Dasher Dragonfly'};
InsectOrder = {'Lepidoptera';'Coleoptera';'Mantodea';'Hymenoptera';'Odonata'};
InsectFamily = {'Nymphalidae';'Coccinellidae';'Hymenopodidae';...
    'Apidae';'Libellulidae'};
PredatoryInsect = logical([0;1;1;0;1]); 

T = table(InsectSpecies,InsectOrder,InsectFamily,PredatoryInsect)
T=5×4 table
          InsectSpecies            InsectOrder        InsectFamily       PredatoryInsect
    _________________________    _______________    _________________    _______________

    {'Monarch Butterfly'    }    {'Lepidoptera'}    {'Nymphalidae'  }         false     
    {'Seven-spot Ladybird'  }    {'Coleoptera' }    {'Coccinellidae'}         true      
    {'Orchid Mantis'        }    {'Mantodea'   }    {'Hymenopodidae'}         true      
    {'American Bumblebee'   }    {'Hymenoptera'}    {'Apidae'       }         false     
    {'Blue Dasher Dragonfly'}    {'Odonata'    }    {'Libellulidae' }         true      

Запись таблицы T в текстовый файл с именем InsectCollection.txt.

writetable(T,'InsectCollection.txt','WriteRowNames',true) 

Создайте новые данные в виде таблицы для добавления к существующей таблице.

newInsect = table({'Red-banded leafhopper'},{'Hemiptera'},{'Cicadellidae'},logical([0]))
newInsect=1×4 table
              Var1                   Var2               Var3          Var4 
    _________________________    _____________    ________________    _____

    {'Red-banded leafhopper'}    {'Hemiptera'}    {'Cicadellidae'}    false

Приложить newInsect кому InsectCollection.txt с использованием 'WriteMode','Append' аргумент пары имя-значение.

writetable(newInsect,'InsectCollection.txt','WriteMode','Append',...
    'WriteVariableNames',false,'WriteRowNames',true)  

Прочитайте таблицу обратно в рабочую область.

readtable('InsectCollection.txt')
ans=6×4 table
          InsectSpecies            InsectOrder        InsectFamily       PredatoryInsect
    _________________________    _______________    _________________    _______________

    {'Monarch Butterfly'    }    {'Lepidoptera'}    {'Nymphalidae'  }           0       
    {'Seven-spot Ladybird'  }    {'Coleoptera' }    {'Coccinellidae'}           1       
    {'Orchid Mantis'        }    {'Mantodea'   }    {'Hymenopodidae'}           1       
    {'American Bumblebee'   }    {'Hymenoptera'}    {'Apidae'       }           0       
    {'Blue Dasher Dragonfly'}    {'Odonata'    }    {'Libellulidae' }           1       
    {'Red-banded leafhopper'}    {'Hemiptera'  }    {'Cicadellidae' }           0       

Сохранение существующей ширины столбцов файла электронной таблицы при добавлении данных в нижнюю часть файла.

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

state = {'Massachussetts';'California';'Minnesota';'Virginia'};
stateFlower = {'Trailing arbutus';'Golden Poppy';'Pink and White Lady''s Slipper';'Flowering dogwood'};
stateBird = {'Black-capped chickadee';'California Valley Quail';'Common Loon';'Cardinal'};
data = table(state,stateFlower,stateBird);

Запись таблицы в файл электронной таблицы с именем states_funfacts.xlsx.

writetable(data,'state_funfacts.xlsx')

Создайте другую таблицу текстовых данных.

t = table({'Maryland';'New York'},{'Black-eyed Susan';'Rose'},{'Baltimore oriole';'Eastern bluebird'});

Добавьте таблицу к существующему файлу электронной таблицы. Определить 'AutoFitWidth' как false для сохранения существующей ширины столбцов электронной таблицы.

writetable(t,'state_funfacts.xlsx',"WriteMode","append","AutoFitWidth",false);

При указании 'AutoFitWidth' как true вместо false, то writetable корректирует ширину столбцов электронной таблицы в соответствии с данными, подлежащими записи, вместо сохранения исходной ширины столбцов.

Редактирование строк в существующем файле электронной таблицы без сохранения форматирования ячеек электронной таблицы.

Файл электронной таблицы student_grades.xlsx содержит отформатированные ячейки. Все ячейки заполнены цветом и имеют границы, а ячейки заголовка выделены полужирным шрифтом.

Создайте таблицу с текстовыми и числовыми данными.

Student = {'Mary';'John'};
Grade = [95;87];
t = table(Student,Grade)
t=2×2 table
    Student     Grade
    ________    _____

    {'Mary'}     95  
    {'John'}     87  

Обновите существующий файл электронной таблицы с помощью таблицы входных данных. Определить 'PreserveFormat' как false для игнорирования существующего форматирования ячеек файла электронной таблицы. Когда вы это делаете, student_grades.xlsx изменяется следующим образом.

writetable(t,'student_grades.xlsx','PreserveFormat',false);

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

writetable(t,'student_grades.xlsx','PreserveFormat',true);

Создайте таблицу данных, а затем запишите ее в XML-файл. Настройка способа writetable записывает данные таблицы в XML-файл, указывая дополнительные аргументы «имя-значение».

Создайте таблицу данных.

InsectSpecies = {'Monarch Butterfly';'Seven-spot Ladybird';'Orchid Mantis'; ...
    'American Bumblebee';'Blue Dasher Dragonfly'};
InsectOrder = {'Lepidoptera';'Coleoptera';'Mantodea';'Hymenoptera';'Odonata'};
InsectFamily = {'Nymphalidae';'Coccinellidae';'Hymenopodidae'; ...
    'Apidae';'Libellulidae'};
PredatoryInsect = logical([0;1;1;0;1]); 

T = table(InsectOrder,InsectFamily,PredatoryInsect);
T.Properties.RowNames = InsectSpecies;
head(T,5)
ans=5×3 table
                               InsectOrder        InsectFamily       PredatoryInsect
                             _______________    _________________    _______________

    Monarch Butterfly        {'Lepidoptera'}    {'Nymphalidae'  }         false     
    Seven-spot Ladybird      {'Coleoptera' }    {'Coccinellidae'}         true      
    Orchid Mantis            {'Mantodea'   }    {'Hymenopodidae'}         true      
    American Bumblebee       {'Hymenoptera'}    {'Apidae'       }         false     
    Blue Dasher Dragonfly    {'Odonata'    }    {'Libellulidae' }         true      

Запишите таблицу T в XML-файл с именем InsectCollection.xml. Определить 'WriteRowNames' как true для записи имен строк таблицы. Имена строк отображаются как поля, принадлежащие Row узел элемента в выходном XML-файле.

Настройка имен узлов в XML-файле путем указания 'Insect' как значение 'RowNodeName'.

writetable(T,'InsectCollection.xml',"WriteRowNames",false,"RowNodeName","Insect")

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

type InsectCollection.xml
<?xml version="1.0" encoding="UTF-8"?>
<table>
    <Insect>
        <InsectOrder>Lepidoptera</InsectOrder>
        <InsectFamily>Nymphalidae</InsectFamily>
        <PredatoryInsect>false</PredatoryInsect>
    </Insect>
    <Insect>
        <InsectOrder>Coleoptera</InsectOrder>
        <InsectFamily>Coccinellidae</InsectFamily>
        <PredatoryInsect>true</PredatoryInsect>
    </Insect>
    <Insect>
        <InsectOrder>Mantodea</InsectOrder>
        <InsectFamily>Hymenopodidae</InsectFamily>
        <PredatoryInsect>true</PredatoryInsect>
    </Insect>
    <Insect>
        <InsectOrder>Hymenoptera</InsectOrder>
        <InsectFamily>Apidae</InsectFamily>
        <PredatoryInsect>false</PredatoryInsect>
    </Insect>
    <Insect>
        <InsectOrder>Odonata</InsectOrder>
        <InsectFamily>Libellulidae</InsectFamily>
        <PredatoryInsect>true</PredatoryInsect>
    </Insect>
</table>

Если не указать WriteRowNames как true, writetable пропускает запись имен строк таблицы в файл.

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

свернуть все

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

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

В зависимости от места, в которое вы пишете, 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 указывает, что имена переменных не должны включаться в первую строку выходного файла.
Все поддерживаемые типы файлов

свернуть все

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

Индикатор

Поведение

false

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

true

Для текстовых файлов и файлов электронных таблиц: writetable включает имена строк из T в качестве первого столбца выходных данных.

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

Для XML-файлов: writetable записывает имена строк входной таблицы в качестве первого узла атрибута на каждом из узлов строк и использует имя первого измерения из свойства T.Properties.DimensionNames в качестве имени узла атрибута.

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

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

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

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

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

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

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

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

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

  • .xml для XML-файлов.

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

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

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

свернуть все

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

Индикатор

Поведение

true

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

false

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

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

Тип файла

Режим записи

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

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

  • 'append' - Добавление данных в файл.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Только текст и XML

свернуть все

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

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

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

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

свернуть все

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

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

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

','

'comma'

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

' '

'space'

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

'\t'

'tab'

Счет

';'

'semi'

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

'|'

'bar'

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

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

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

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

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

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

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

свернуть все

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

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

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

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

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

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

свернуть все

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

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

  • Если не указать 'AttributeSuffix', writetable по умолчанию записывает переменные с суффиксом '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'

Ограничения

  • writetable не поддерживает запись вложенных таблиц. Использовать splitvars во вложенной таблице, чтобы разделить переменные из нескольких столбцов на переменные из одного столбца перед записью.

Совет

  • Создание пустых листов в файлах электронных таблиц: создание пустого листа в файле электронной таблицы с помощью writetable путем записи пустой таблицы. Например, создайте пустой лист с именем 'MySheetName'.

    writetable(table(),'empty.xls','Sheet','MySheetName')
    Или создайте три пустых листа с именем 'Sheet1', 'Sheet2', и 'Sheet3'.
     writetable(table(),'empty.xls','Sheet',3)

Алгоритмы

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

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

  • Для файлов Excel writetable пишет table переменные, содержащие datetime массивы как даты Excel. Если table содержит datetime массивы с годами до 1900 или 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