writematrix

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

Описание

пример

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

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

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

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

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

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

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

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

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

The '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