MATLAB - Salida de datos
La exportación (o salida) de datos en MATLAB significa escribir en archivos. MATLAB le permite utilizar sus datos en otra aplicación que lea archivos ASCII. Para ello, MATLAB proporciona varias opciones de exportación de datos.
Puede crear el siguiente tipo de archivos −
-
Archivo de datos ASCII rectangular y delimitado de una matriz.
-
Archivo de diario (o registro) de pulsaciones de teclas y la salida de texto resultante.
-
Archivo ASCII especializado que utiliza funciones de bajo nivel como fprintf.
-
Archivo MEX para acceder a su rutina C/C++ o Fortran que escribe en un formato de archivo de texto particular.
Aparte de esto, también puede exportar datos a hojas de cálculo.
Hay dos formas de exportar una matriz numérica como un archivo de datos ASCII delimitado:
-
Uso de guardar y especificando el -ascii calificador
-
Uso de dlmwrite función
La sintaxis para usar la función de guardar es −
save my_data.out num_array -ascii
donde, mis_datos.fuera es el archivo de datos ASCII delimitado creado, num_array es una matriz numérica y −ascii es el especificador.
Sintaxis para usar dlmwrite la función es −
dlmwrite('my_data.out', num_array, 'dlm_char')
donde, mis_datos.fuera es el archivo de datos ASCII delimitado creado, num_array es una matriz numérica y dlm_char es el carácter delimitador.
Ejemplo
El siguiente ejemplo demuestra el concepto. Cree un archivo de script y escriba el siguiente código −
Demostración en vivonum_array = [ 1 2 3 4 ; 4 5 6 7; 7 8 9 0]; save array_data1.out num_array -ascii; type array_data1.out dlmwrite('array_data2.out', num_array, ' '); type array_data2.out
Cuando ejecuta el archivo, muestra el siguiente resultado −
1.0000000e+00 2.0000000e+00 3.0000000e+00 4.0000000e+00 4.0000000e+00 5.0000000e+00 6.0000000e+00 7.0000000e+00 7.0000000e+00 8.0000000e+00 9.0000000e+00 0.0000000e+00 1 2 3 4 4 5 6 7 7 8 9 0
Tenga en cuenta que el comando save -ascii y la función dlmwrite no funcionan con matrices de celdas como entrada. Para crear un archivo ASCII delimitado a partir del contenido de una matriz de celdas, puede
-
O bien, convierta la matriz de celdas en una matriz utilizando cell2mat función
-
O exporte la matriz de celdas utilizando funciones de E/S de archivos de bajo nivel.
Si utiliza el guardar para escribir una matriz de caracteres en un archivo ASCII, escribe el equivalente ASCII de los caracteres en el archivo.
Por ejemplo, escribamos la palabra 'hola' en un archivo −
Demostración en vivoh = 'hello'; save textdata.out h -ascii type textdata.out
MATLAB ejecuta las instrucciones anteriores y muestra el siguiente resultado. que son los caracteres de la cadena 'hola' en formato ASCII de 8 dígitos.
1.0400000e+02 1.0100000e+02 1.0800000e+02 1.0800000e+02 1.1100000e+02
Escribir en archivos de diario
Los archivos diarios son registros de actividad de su sesión de MATLAB. La función de diario crea una copia exacta de su sesión en un archivo de disco, excluyendo gráficos.
Para activar la función de diario, escriba −
diary
Opcionalmente, puede dar el nombre del archivo de registro, digamos −
diary logdata.out
Para desactivar la función de diario −
diary off
Puede abrir el archivo del diario en un editor de texto.
Exportación de datos a archivos de datos de texto con E/S de bajo nivel
Hasta ahora, hemos exportado matrices numéricas. Sin embargo, es posible que deba crear otros archivos de texto, incluidas combinaciones de datos numéricos y de caracteres, archivos de salida no rectangulares o archivos con esquemas de codificación que no sean ASCII. Para estos fines, MATLAB proporciona el fprintf de bajo nivel función.
Al igual que en las actividades de archivos de E/S de bajo nivel, antes de exportar, debe abrir o crear un archivo con el fopen función y obtener el identificador de archivo. De forma predeterminada, fopen abre un archivo para acceso de solo lectura. Debe especificar el permiso para escribir o agregar, como 'w' o 'a'.
Después de procesar el archivo, debe cerrarlo con fclose(fid) función.
El siguiente ejemplo demuestra el concepto −
Ejemplo
Cree un archivo de script y escriba el siguiente código en él −
Demostración en vivo% create a matrix y, with two rows x = 0:10:100; y = [x; log(x)]; % open a file for writing fid = fopen('logtable.txt', 'w'); % Table Header fprintf(fid, 'Log Function\n\n'); % print values in column order % two values appear on each row of the file fprintf(fid, '%f %f\n', y); fclose(fid); % display the file created type logtable.txt
Cuando ejecuta el archivo, muestra el siguiente resultado −
Log Function 0.000000 -Inf 10.000000 2.302585 20.000000 2.995732 30.000000 3.401197 40.000000 3.688879 50.000000 3.912023 60.000000 4.094345 70.000000 4.248495 80.000000 4.382027 90.000000 4.499810 100.000000 4.605170
MATLAB