Write a matrix to a file
writematrix(
writes homogeneous array
A
)A
to a comma delimited text file. The file name is the workspace
variable name of the array, appended with the extension .txt
. If
writematrix
cannot construct the file name from the array name, then it
writes to the file matrix.txt
.
Each column of each variable in A
becomes a column in the output
file. The writematrix
function overwrites any existing file.
writematrix(
writes to a file with the name and extension specified by
A
,filename
)filename
.
writematrix
determines the file format based on the specified
extension. The extension must be one of the following:
.txt
, .dat
, or .csv
for
delimited text files
.xls
, .xlsm
, or .xlsx
for
Excel® spreadsheet files
.xlsb
for Excel spreadsheet files supported on systems with Excel for Windows®
writematrix(___,
writes
an array to a file with additional options specified by one or more
Name,Value
)Name,Value
pair arguments and can include any of the input arguments
in previous syntaxes.
Create a matrix, write it to a comma-separated text file, and then write the matrix to another text file with a different delimiter character.
Create a matrix in the workspace.
M = magic(5)
M = 5×5
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
Write the matrix to a comma delimited text file and display the file contents. The writematrix
function outputs a text file named M.txt
.
writematrix(M)
type 'M.txt'
17,24,1,8,15 23,5,7,14,16 4,6,13,20,22 10,12,19,21,3 11,18,25,2,9
To write the same matrix to a text file with a different delimiter character, use the 'Delimiter'
name-value pair.
writematrix(M,'M_tab.txt','Delimiter','tab') type 'M_tab.txt'
17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9
Create a matrix, write it to a spreadsheet file, and then read and display the contents of the file.
Create a matrix in the workspace.
M = magic(5)
M = 5×5
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
Write the matrix to a spreadsheet file.
writematrix(M,'M.xls')
Read and display the matrix from M.xls
.
readmatrix('M.xls')
ans = 5×5
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
Create a matrix and write it to a specified sheet and range in a spreadsheet file.
Create a matrix in the workspace.
M = magic(5)
M = 5×5
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
Write the matrix to M.xls
, to the second worksheet in the file, starting at the third row.
writematrix(M,'M.xls','Sheet',2,'Range','A3:E8')
Read and display the matrix.
readmatrix('M.xls','Sheet',2,'Range','A3:E8')
ans = 5×5
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
Append an array of data below existing data in a spreadsheet.
Create two matrices in the workspace.
M1 = magic(5)
M1 = 5×5
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
M2 = [5 10 15 20 25; 30 35 40 45 50]
M2 = 2×5
5 10 15 20 25
30 35 40 45 50
Write the matrix M1
to a spreadsheet file, M.xls.
writematrix(M1,'M.xls')
Append the data in matrix M2
below the existing data in the spreadsheet file.
writematrix(M2,'M.xls','WriteMode','append')
Read the spreadsheet file and display the matrix.
readmatrix('M.xls')
ans = 7×5
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
5 10 15 20 25
30 35 40 45 50
Append an array of data below existing data in a text file.
Create two matrices in the workspace.
fibonacci1 = [1 1 2 3; 5 8 13 21; 34 55 89 144]
fibonacci1 = 3×4
1 1 2 3
5 8 13 21
34 55 89 144
fibonacci2 = [233 377 610 987]
fibonacci2 = 1×4
233 377 610 987
Write the matrix fibonacci1
to a text file, fibonacci.txt.
writematrix(fibonacci1,'fibonacci.txt')
Append the data in fibonacci2
below the existing data in the text file.
writematrix(fibonacci2,'fibonacci.txt','WriteMode','append')
Read the text file and display the matrix.
readmatrix('fibonacci.txt')
ans = 4×4
1 1 2 3
5 8 13 21
34 55 89 144
233 377 610 987
A
— Input dataInput data, specified as a matrix.
filename
— File nameFile name, specified as a character vector or string scalar.
Depending on the location you are writing to, filename
can take on one of these forms.
Location | Form | ||||||||
---|---|---|---|---|---|---|---|---|---|
Current folder | To write to the current folder, specify the name of the file in Example: | ||||||||
Other folders | To write to a folder different from the current folder, specify the full or relative path name in Example: Example: | ||||||||
Remote Location | To write to a remote location,
Based on your remote location,
For more information, see Work with Remote Data. Example:
|
If filename
includes the file extension, then the
writing function determines the file format from the extension. Otherwise,
the writing function creates a comma separated text file and appends the
extension .txt
. Alternatively, you can specify
filename
without the file’s extension, and then
include the 'FileType'
name-value pair arguments to
indicate the type of file.
If filename
does not exist, then the writing function
creates the file.
If filename
is the name of an existing text file, then
the writing function overwrites the file.
If filename
is the name of an existing spreadsheet
file, then the writing function writes the data to the specified location,
but does not overwrite any values outside the range of the input
data.
Data Types: char
| string
Specify optional
comma-separated pairs of Name,Value
arguments. Name
is
the argument name and Value
is the corresponding value.
Name
must appear inside quotes. You can specify several name and value
pair arguments in any order as
Name1,Value1,...,NameN,ValueN
.
'FileType',text
indicates that the variable names should not
be included as the first row of the output file.'FileType'
— Type of file'text'
| 'spreadsheet'
Type of file, specified as the comma-separated pair consisting of 'FileType'
and a character vector or string containing 'text'
or 'spreadsheet'
.
The 'FileType'
name-value pair must be used with the filename
input argument. You do not need to specify the 'FileType'
name-value pair argument if the filename
input argument includes a standard file extension. The following standard file extensions are recognized by the writing function:
.txt
, .dat
, or .csv
for delimited text files
.xls
, .xlsm
, or .xlsx
for Excel spreadsheet files
.xlsb
for Excel spreadsheet files supported on systems with Excel for Windows
Example: 'FileType','spreadsheet'
Data Types: char
| string
'DateLocale'
— Locale for writing datesLocale for writing dates, specified as the comma-separated pair consisting of
'DateLocale'
and a character vector or a string scalar. When
writing datetime
values to the file, use
DateLocale
to specify the locale in which
writematrix
should write month and day-of-week names and
abbreviations. The character vector or string takes the form
,
where xx
_YY
xx
is a lowercase ISO 639-1 two-letter code indicating
a language, and YY
is an uppercase ISO 3166-1 alpha-2 code
indicating a country. For a list of common values for the locale, see the
Locale
name-value pair argument for the datetime
function.
The writing function ignores the 'DateLocale'
parameter value whenever
dates can be written as Excel-formatted dates.
Example: 'DateLocale','ja_JP'
Data Types: char
| string
'WriteMode'
— Writing modeWriting mode, specified as the comma-separated pair consisting of 'WriteMode'
and a character vector or a string scalar. Select a write mode based on the file type.
File Type | Write Mode |
---|---|
Text Files |
If the file you specified does not exist, then the writing function creates and writes data to a new file. |
Spreadsheet Files |
|
When WriteVariableNames
is set to true
, the writing function does not support the write mode 'append'
.
For spreadsheet files:
When the write mode is 'append'
, the writing
function does not support the Range
parameter.
If the file you specified does not exist, then the writing
function performs the same actions as
'replacefile'
.
Example: 'WriteMode','append'
Data Types: char
| string
'Delimiter'
— Field delimiter characterField delimiter character, specified as the comma-separated pair consisting of
'Delimiter'
and a character vector or string scalar containing
one of these specifiers:
Specifier | Field Delimiter |
---|---|
| Comma. This is the default behavior. |
| Space |
| Tab |
| Semicolon |
| Vertical bar |
You can use the 'Delimiter'
name-value pair only for delimited text files.
Example: 'Delimiter','space'
Data Types: char
| string
'QuoteStrings'
— Indicator for writing quoted textfalse
(default) | true
Indicator for writing quoted text, specified as the comma-separated pair consisting of
'QuoteStrings'
and either false
or
true
. If 'QuoteStrings'
is
true
, then the writing function encloses the text in double
quotation marks and replaces any double-quote characters that appear as part of that
text with two double-quote characters.
You can use the 'QuoteStrings'
name-value pair only with delimited text files.
'Encoding'
— Character encoding scheme'UTF-8'
(default) | 'ISO-8859-1'
| 'windows-1251'
| 'windows-1252'
| ...Character encoding scheme associated with the file, specified as the
comma-separated pair consisting of 'Encoding'
and
'system'
or a standard character encoding scheme name. When you
do not specify any encoding, the writing function uses UTF-8 to write the file.
Example: 'Encoding','UTF-8'
uses UTF-8 as the
encoding.
Data Types: char
| string
'Sheet'
— Worksheet to write toWorksheet to write to, specified as the comma-separated pair consisting of
'Sheet'
and a character vector or a string scalar containing the
worksheet name or a positive integer indicating the worksheet index. The worksheet name
cannot contain a colon (:
). To determine the names of sheets in a
spreadsheet file, use sheets = sheetnames(filename)
. For more
information, see sheetnames
.
Specify the worksheet to write to by name or index:
name — If the specified sheet name does not exist in the file, then the writing function adds a new sheet at the end of the worksheet collection.
index — If the specified sheet index is an index larger than the number of worksheets, then the writing function appends empty sheets until the number of worksheets in the workbook equals the sheet index. The writing function also generates a warning indicating that it has added a new worksheet.
You can use the 'Sheet'
name-value pair only with spreadsheet files.
Example: 'Sheet'
,2
Example: 'Sheet'
, 'MySheetName'
Data Types: char
| string
| single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
'Range'
— Rectangular portion of worksheet to write toRectangular portion of worksheet to write to, specified as the comma-separated pair consisting of 'Range'
and a character vector or string scalar in one of the following forms.
Form of the Value of Range | Description |
---|---|
' |
Example: |
' |
Example:
|
The 'Range'
name-value pair can only be used with Excel files.
Example: 'Range'
, 'A1:F10'
Data Types: char
| string
'UseExcel'
— Flag to start instance of Microsoft Excel for Windowsfalse
(default) | true
Flag to start an instance of Microsoft®
Excel for Windows when writing spreadsheet data, specified as the comma-separated pair consisting of 'UseExcel'
and either true
, or false
.
You can set the 'UseExcel'
parameter to one of these values:
true
— The writing function starts an instance of
Microsoft
Excel when writing the
file.
false
— The writing function does not start an instance
of Microsoft
Excel when writing the file. When
operating in this mode, functionality for writing differs in the support of
file formats and interactive features, such as formulas and macros.
UseExcel |
|
|
---|---|---|
Supported file formats |
|
|
Support for interactive features, such as formulas and macros | Yes | No |
When writing to spreadsheet files on Windows platforms, if you want to start an instance of Microsoft
Excel, then set the 'UseExcel'
parameter to
true
.
'AutoFitWidth'
— Automatically adjust column widthtrue
(default) | false
Automatically adjust column width, specified as true
or
false
. If you specify a value of 0
or
false
, then writematrix
will not
automatically adjust the column widths to fit the data in the cells.
Example: 'AutoFitWidth'
,0
'PreserveFormat'
— Preserve existing formattrue
(default) | false
Preserve existing format of the original data, specified as true
or
false
. If you specify false
, then
writematrix
will not preserve the cell formatting of the
original data, such as fonts, cell borders, and color-shaded cells.
When you write datetime
data to a spreadsheet file, you must set
both 'PreserveFormat'
and the 'UseExcel'
name-value pair to true
to preserve the existing cell formatting. If
'UseExcel'
is set to false
and
'PreserveFormat'
is set to true
when you write
datetime
data to the file, writematrix
will
not preserve the existing cell formatting of the file.
Example: 'PreserveFormat'
,0
To set the 'PreserveFormat'
name-value pair to
true
, you must set the 'UseExcel'
name-value pair
to true
.
There are some instances where the writematrix
function creates a
file that does not represent the input data exactly. You will notice this when you use the
readmatrix
function to read that file. The resulting data might not have the exact same format or
contents as the original array. If you need to save your array and retrieve it at a later time
to match the original array exactly, with the same data and organization, then save it as a
MAT-file. writematrix
writes inexact data in the following instances:
writematrix
writes out numeric data using long
g
format, and categorical or character data as unquoted text.
writematrix
writes out arrays that have more than two
dimensions as two dimensional arrays, with the trailing dimensions collapsed.
readmatrix
| writecell
| writematrix
| writetable
| writetimetable
You have a modified version of this example. Do you want to open this example with your edits?