Contenido principal

writematrix

Escribir una matriz en un archivo

Descripción

writematrix(A) escribe un arreglo homogéneo A en un archivo de texto delimitado por comas. El nombre de archivo es el nombre de variable del área de trabajo del arreglo, junto con la extensión .txt. Si writematrix no puede construir el nombre de archivo a partir del nombre de arreglo, se escribe en el archivo matrix.txt.

Cada columna de cada variable en A se convierte en una columna en el archivo de salida. La función writematrix sobrescribe cualquier archivo existente.

ejemplo

writematrix(A,filename) escribe en un archivo con el nombre y la extensión especificados por filename.

writematrix determina el formato de archivo a partir de la extensión especificada. La extensión debe ser una de las siguientes:

  • .txt, .dat, o .csv para los archivos de texto delimitado

  • .xls, .xlsm o .xlsx para los archivos de hoja de cálculo de Excel®

  • .xlsb para hojas de cálculo de Excel compatibles con sistemas con Excel para Windows®

ejemplo

writematrix(___,Name,Value) escribe un arreglo en un archivo con opciones adicionales especificado por uno o más argumentos de par Name,Value y puede incluir cualquiera de los argumentos de entrada de las sintaxis anteriores.

ejemplo

Ejemplos

contraer todo

Cree una matriz, escríbala en un archivo de texto separado por comas y, después, escriba la matriz en otro archivo de texto con un carácter delimitador diferente.

Cree una matriz en el área de trabajo.

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

Escriba la matriz en un archivo de texto delimitado por comas y muestre el contenido del archivo. La función writematrix genera como resultado un archivo de texto llamado 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

Para escribir la misma matriz en un archivo de texto con un carácter delimitador diferente, use el par nombre-valor '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

Cree una matriz, escríbala en un archivo de hoja de cálculo y, después, lea y muestre el contenido del archivo.

Cree una matriz en el área de trabajo.

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

Escriba la matriz en un archivo de hoja de cálculo.

writematrix(M,'M.xls')

Lea y muestre la matriz de 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

Cree una matriz y escríbala en una hoja e intervalo especificados en un archivo de hoja de cálculo.

Cree una matriz en el área de trabajo.

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

Escriba la matriz en M.xls, en la segunda hoja de cálculo del archivo, empezando en la tercera fila.

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

Lea y muestre la matriz.

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

Añada un arreglo de datos debajo de los datos existentes en una hoja de cálculo.

Cree dos matrices en el área de trabajo.

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

Escriba la matriz M1 en un archivo de hoja de cálculo, M.xls.

writematrix(M1,'M.xls')

Añada los datos a la matriz M2 debajo de los datos existentes en el archivo de hoja de cálculo.

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

Lea el archivo de hoja de cálculo y muestre la matriz.

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

Añada un arreglo de datos debajo de los datos existentes en un archivo de texto.

Cree dos matrices en el área de trabajo.

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

Escriba la matriz fibonacci1 en un archivo de texto, fibonacci.txt.

writematrix(fibonacci1,'fibonacci.txt')

Añada los datos de fibonacci2 debajo de los datos existentes en el archivo de texto.

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

Lea el archivo de texto y muestre la matriz.

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

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

Argumentos de entrada

contraer todo

Datos de entrada, especificados como matriz.

Nombre de archivo, especificado como vector de caracteres o escalar de cadena.

En función de la ubicación en la que está escribiendo, filename puede tomar una de estas formas.

Ubicación

Forma

Carpeta actual

Para escribir en la carpeta actual, especifique el nombre del archivo en filename.

Ejemplo: 'myTextFile.csv'

Otras carpetas

Para escribir en una carpeta distinta a la carpeta actual, especifique el nombre de la ruta completa o relativa en filename.

Ejemplo: 'C:\myFolder\myTextFile.csv'

Ejemplo: 'myFolder\myExcelFile.xlsx'

Ubicación remota

Para guardar archivos en una ubicación remota, filename debe contener la ruta completa del archivo, especificada como un localizador uniforme de recursos (URL) con el formato:

scheme_name://path_to_file/my_file.ext

Según la ubicación remota, scheme_name puede ser uno de los valores de esta tabla.

Ubicación remotascheme_name
Amazon S3™s3
Windows Azure® Blob Storagewasb, wasbs
HDFS™hdfs

Para obtener más información, consulte Trabajar con datos remotos.

Ejemplo: 's3://bucketname/path_to_file/my_file.xlsx'

  • Si filename incluye la extensión del archivo, la función de escritura determina el formato del archivo desde la extensión. De lo contrario, la función de escritura crea un archivo de texto separado por comas y añade la extensión .txt. De manera alternativa, puede especificar filename sin la extensión del archivo y, después, incluir los argumentos de par nombre-valor 'FileType' para indicar el tipo de archivo.

  • Si filename no existe, la función de escritura crea el archivo.

  • Si filename es el nombre de un archivo de texto existente, la función de escritura sobrescribe el archivo.

  • Si filename es el nombre de un archivo de hoja de cálculo existente, la función de escritura escribe los datos en la ubicación especificada, pero no sobrescribe ningún valor fuera del intervalo de los datos de entrada.

Tipos de datos: char | string

Argumentos de par nombre-valor

expandir todo

Especifique pares opcionales de argumentos como Name1=Value1,...,NameN=ValueN, donde Name es el nombre del argumento y Value es el valor correspondiente. Los argumentos nombre-valor deben aparecer después de otros argumentos, pero el orden de los pares no importa.

En las versiones anteriores a R2021a, utilice comas para separar cada nombre y valor, y encierre Name entre comillas.

Ejemplo: 'FileType',text indica que los nombres de variable no deben incluirse como la primera fila del archivo de salida.

Archivos de texto y de hoja de cálculo

expandir todo

Tipo de archivo, especificado como el par separado por comas que consta de 'FileType' y un vector de caracteres o cadena que contiene 'text' o 'spreadsheet'.

El par nombre-valor 'FileType' debe usarse con el argumento de entrada filename. No es necesario especificar el argumento de par nombre-valor 'FileType' si el argumento de entrada filename incluye una extensión de archivo estándar. La función de escritura reconoce las siguientes extensiones de archivo estándar:

  • .txt, .dat, o .csv para los archivos de texto delimitado

  • .xls, .xlsm o .xlsx para los archivos de hoja de cálculo de Excel

  • .xlsb para hojas de cálculo de Excel compatibles con sistemas con Excel para Windows

Ejemplo: 'FileType','spreadsheet'

Tipos de datos: char | string

Configuración local para escribir fechas, especificada como el par separado por comas que consta de 'DateLocale' y un vector de caracteres o un escalar de cadena. Cuando escriba valores datetime en el archivo, use DateLocale para especificar la configuración local en la que writematrix debería escribir nombres de meses y días de la semana y abreviaturas. El vector de caracteres o cadena toma la forma xx_YY, donde xx es un código ISO 639-1 de dos letras minúsculas que indica un idioma e YY es un código ISO 3166-1 alpha-2 de dos letras mayúsculas que indica un país. Para ver una lista de valores habituales para la configuración local, consulte el argumento de par nombre-valor Locale para la función datetime.

La función de escritura ignora el valor del parámetro 'DateLocale' siempre que las fechas se puedan escribir como fechas con formato de Excel.

Ejemplo: 'DateLocale','ja_JP'

Tipos de datos: char | string

Modo de escritura, especificado como el par separado por comas que consta de 'WriteMode' y un vector de caracteres o un escalar de cadena. Seleccione un modo de escritura en función del tipo de archivo.

Tipo de archivo

Modo de escritura

Archivos de texto

  • 'overwrite' (valor predeterminado): sobrescribe el archivo.

  • 'append': añade datos al archivo.

Si el archivo que ha especificado no existe, la función de escritura crea un archivo nuevo y escribe datos en él.

Archivos de hoja de cálculo

  • 'inplace' (valor predeterminado): actualiza únicamente el intervalo ocupado por los datos de entrada. La función de escritura no cambia ningún dato fuera del intervalo ocupado por los datos de entrada.

    • Si no especifica una hoja, la función de escritura escribe en la primera hoja.

  • 'overwritesheet': borra la hoja especificada y escribe los datos de entrada en la hoja borrada.

    • Si no especifica una hoja, la función de escritura borra la primera hoja y escribe los datos de entrada en ella.

  • 'append': la función de escritura añade los datos de entrada a la parte inferior del intervalo ocupado de la hoja especificada.

    • Si no especifica una hoja, la función de escritura añade los datos de entrada a la parte inferior del intervalo ocupado de la primera hoja.

  • 'replacefile': elimina el resto de hojas del archivo y, después, borra y escribe los datos de entrada en la hoja especificada.

    • Si no especifica una hoja, la función de escritura elimina el resto de hojas del archivo y, después, escribe los datos de entrada en la primera hoja.

    • Si el archivo que ha especificado no existe, la función de escritura crea un archivo nuevo y escribe los datos de entrada en la primera hoja.

  • Cuando WriteVariableNames se establece en true, la función de escritura no admite el modo de escritura 'append'.

  • Para archivos de hoja de cálculo:

    • Cuando el modo de escritura es 'append', la función de escritura no admite el parámetro Range.

    • Si el archivo especificado no existe, la función de escritura realiza las mismas acciones que 'replacefile'.

Ejemplo: 'WriteMode','append'

Tipos de datos: char | string

Solo archivos de texto

expandir todo

Carácter delimitador de campo, especificado como el par separado por comas que consta de 'Delimiter' y un vector de caracteres o escalar de cadena que contiene uno de los siguientes especificadores:

Especificador

Delimitador de campo

','

'comma'

Coma. Se trata del comportamiento predeterminado.

' '

'space'

Espacio

'\t'

'tab'

Tabulador

';'

'semi'

Punto y coma

'|'

'bar'

Barra vertical

Puede utilizar el par nombre-valor 'Delimiter' solo para archivos de texto delimitado.

Ejemplo: 'Delimiter','space'

Tipos de datos: char | string

Indicador para escribir texto entrecomillado, especificado como "minimal", "all" o "none".

  • Si QuoteStrings es "minimal", la función encierra cualquier variable que contenga el delimitador, la nueva línea o el carácter de comillas dobles en caracteres de comillas dobles.

  • Si QuoteStrings es "all", la función encierra todas las variables de texto, categóricas, de fecha/hora y duración en caracteres de comillas dobles.

  • Si QuoteStrings es "none", la función no encierra variables en caracteres de comillas dobles.

Puede usar el argumento nombre-valor QuoteStrings solo con archivos de texto delimitado.

Esquema de codificación de caracteres asociado al archivo, especificado como el par separado por comas que consta de 'Encoding' y 'system' o un nombre de esquema de codificación de caracteres estándar. Cuando no se especifica ninguna codificación, la función de escritura utiliza UTF-8 para escribir en el archivo.

Ejemplo: 'Encoding','UTF-8' utiliza UTF-8 como codificación.

Tipos de datos: char | string

Solo archivos de hoja de cálculo

expandir todo

Hoja de cálculo en la que desea escribir, especificada como el par separado por comas que consta de 'Sheet' y un vector de caracteres o un escalar de cadena que contiene el nombre de la hoja de cálculo o un entero positivo que indica el índice de la hoja de cálculo. El nombre de la hoja de cálculo no puede contener dos puntos (:). Para determinar los nombres de las hojas en un archivo de hoja de cálculo, utilice sheets = sheetnames(filename). Para obtener más información, consulte sheetnames.

Especifique la hoja de cálculo en la que desea escribir por nombre o índice:

  • por nombre: si el nombre de hoja de cálculo especificado no existe en el archivo, la función de escritura añade una nueva hoja al final de la colección de hojas de cálculo.

  • por índice: si el índice de la hoja especificada es un índice mayor que el número de hojas de cálculo, la función de escritura anexa hojas vacías hasta que el número de hojas de cálculo del libro es igual al índice de hojas. La función de escritura también genera una advertencia que indica que se ha añadido una nueva hoja de cálculo.

Puede utilizar el par nombre-valor 'Sheet' solo con archivos de hoja de cálculo.

Ejemplo: 'Sheet',2

Ejemplo: 'Sheet', 'MySheetName'

Tipos de datos: char | string | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Parte rectangular de la hoja de cálculo en la que desea escribir, especificada como el par separado por comas que consta de 'Range' y un vector de caracteres o un escalar de cadena con uno de los siguientes formatos:

Formato del valor de Range Descripción
'Corner1'

Corner1 especifica la primera celda de la región en la que se desea escribir. La función de escritura escribe los datos empezando por esta celda.

Ejemplo: 'Range','D2'

'Corner1:Corner2'

Corner1 y Corner2 son dos esquinas opuestas que definen la región en la que se desea escribir. Por ejemplo, 'D2:H4' representa la región rectangular de 3 por 5 entre las dos esquinas D2 y H4 en la hoja de cálculo. El argumento de par nombre-valor 'Range' no distingue entre mayúsculas y minúsculas, y utiliza el estilo de referencia A1 de Excel (consulte Excel para obtener ayuda).

Ejemplo: 'Range','D2:H4'

  • Si el intervalo que especifica es menor que el tamaño de los datos de entrada, la función de escritura escribe únicamente un subconjunto de los datos de entrada que quepa en el intervalo.

  • Si el intervalo que especifica es mayor que el tamaño de los datos de entrada, la función de escritura deja la parte restante de la región como está.

El par nombre-valor 'Range' puede usarse únicamente con archivos de Excel.

Ejemplo: 'Range', 'A1:F10'

Tipos de datos: char | string

Indicador para inciar una instancia de Microsoft Excel para Windows al escribir datos de hoja de cálculo, especificado como el par separado por comas que consta de 'UseExcel' y true o false.

Puede establecer el parámetro 'UseExcel' en uno de estos valores:

  • true: la función de escritura inicia una instancia de Microsoft Excel al escribir el archivo.

  • false: la función de escritura no inicia una instancia de Microsoft Excel al escribir el archivo. Al operar en este modo, la funcionalidad de escritura varía en la compatibilidad de los formatos de archivo y características interactivas, como fórmulas y macros.

UseExcel

true

false

Formatos de archivo compatibles

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

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

Soporte para funcionalidades interactivas, como fórmulas y macros

No

Al escribir en archivos de hojas de cálculo en plataformas de Windows, si desea iniciar una instancia de Microsoft Excel, establezca el parámetro 'UseExcel' en true.

UseExcel no es compatible en entornos automatizados no interactivos.

Ajustar de manera automática el ancho de las columnas, especificado como true o false. Si especifica un valor de 0 o false, writematrix no ajustará de manera automática los anchos de las columnas para que los datos quepan en las celdas.

Ejemplo: 'AutoFitWidth',0

Mantener el formato de las celdas de una hoja de cálculo existente, especificado como true o false. Si especifica false, writematrix no mantendrá el formato de las celdas de la hoja de cálculo. El formato incluye elementos como fuentes, bordes de celda y celdas sombreadas con color.

Cuando escriba datos datetime en un archivo de hoja de cálculo, debe establecer tanto 'PreserveFormat' como el par nombre-valor 'UseExcel' en true para mantener el formato de las celdas existente. Si 'UseExcel' se establece en false y 'PreserveFormat' se establece en true, cuando escriba datos datetime en el archivo, writematrix no mantendrá el formato de las celdas existente del archivo.

Ejemplo: 'PreserveFormat',false

Limitaciones

writematrix no admite matrices dispersas.

Algoritmos

  • Existen algunos casos en los que la función writematrix crea un archivo que no representa los datos de entrada con exactitud. Observará esto cuando utilice la función readmatrix para leer ese archivo. Es posible que los datos resultantes no tengan el mismo formato o contenido exacto que el arreglo original. Si es necesario guardar el arreglo y recuperarlo más adelante para que coincida de manera exacta con el arreglo original, con los mismos datos y organización, guárdelo como un archivo MAT. writematrix escribe datos inexactos en los casos siguientes:

    • writematrix escribe datos numéricos usando el formato long g y datos categóricos o de caracteres como texto sin entrecomillar.

    • writematrix escribe arreglos que tienen más de dos dimensiones como arreglos bidimensionales, con las dimensiones finales contraídas.

  • Excel convierte los valores Inf en 65535. MATLAB® convierte los valores categóricos NaN, NaT y <undefined>, y los valores de cadena <missing> en celdas vacías.

Historial de versiones

Introducido en R2019a