exponenta event banner

writematrix

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

Описание

пример

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

Каждый столбец каждой переменной в A становится столбцом в выходном файле. writematrix функция перезаписывает любой существующий файл.

пример

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

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

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

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

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

пример

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

Примеры

свернуть все

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

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

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

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

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

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

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

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

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

Запишите матрицу в файл электронной таблицы.

writematrix(M,'M.xls')

Считывание и отображение матрицы из 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

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

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

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

Запишите матрицу в M.xls, на второй лист в файле, начиная с третьей строки.

writematrix(M,'M.xls','Sheet',2,'Range','A3:E8')

Прочтите и отобразите матрицу.

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

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

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

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

Запись матрицы M1 в файл электронной таблицы, M.xls.

writematrix(M1,'M.xls')

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

writematrix(M2,'M.xls','WriteMode','append')

Прочтите файл электронной таблицы и отобразите матрицу.

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

Добавьте массив данных под существующими данными в текстовый файл.

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

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

Запись матрицы fibonacci1 в текстовый файл, fibonacci.txt.

writematrix(fibonacci1,'fibonacci.txt')

Добавление данных в fibonacci2 ниже существующих данных в текстовом файле.

writematrix(fibonacci2,'fibonacci.txt','WriteMode','append')

Прочтите текстовый файл и отобразите матрицу.

readmatrix('fibonacci.txt')
ans = 4×4

     1     1     2     3
     5     8    13    21
    34    55    89   144
   233   377   610   987

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

свернуть все

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

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

В зависимости от места, в которое вы пишете, 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.

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

свернуть все

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

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

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

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

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

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

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

Языковой стандарт для даты записи, указанный как пара, разделенная запятыми, состоящая из 'DateLocale' и вектор символов или строковый скаляр. При написании datetime значения для файла, используйте DateLocale для указания языкового стандарта, в котором writematrix следует писать имена и сокращения месяцев и дней недели. Символьный вектор или строка принимает вид 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, то writematrix не будет автоматически корректировать ширину столбцов в соответствии с данными в ячейках.

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

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

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

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

Ограничения

  • Для установки 'PreserveFormat' пара имя-значение к true, необходимо установить 'UseExcel' пара имя-значение к true.

Алгоритмы

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

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

  • writematrix записывает массивы, которые имеют более двух размеров, как двумерные массивы, при этом конечные размеры свернуты.

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