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 lee archivos ASCII. Para ello, MATLAB proporciona varias opciones de exportación de datos.
Puede crear los siguientes tipos de archivos:
Archivo de datos ASCII rectangular delimitado de una matriz.
Archivo diario (o registro) de pulsaciones de teclas y la salida de texto resultante.
Archivo ASCII especializado que utiliza funciones de bajo nivel como fprintf.
MEX-file 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:
Utilizando el save función y especificando el -ascii Calificatorio
Utilizando el dlmwrite función
La sintaxis para usar la función de guardar es:
save my_data.out num_array -ascii
donde my_data.out es el archivo de datos ASCII delimitado creado, num_array es una matriz numérica y−ascii es el especificador.
Sintaxis para usar el dlmwrite la función es -
dlmwrite('my_data.out', num_array, 'dlm_char')
donde my_data.out 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:
num_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 convierta la matriz de celdas en una matriz usando el cell2mat función
O exporte la matriz de celdas utilizando funciones de E / S de archivo de bajo nivel.
Si usa el save función 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 -
h = 'hello';
save textdata.out h -ascii
type textdata.out
MATLAB ejecuta las declaraciones 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 de diario 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, sin incluir gráficos.
Para activar la función de diario, escriba -
diary
Opcionalmente, puede dar el nombre del archivo de registro, por ejemplo:
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 no ASCII. Para estos fines, MATLAB proporciona el nivel bajofprintf función.
Al igual que en las actividades de archivo de E / S de bajo nivel, antes de exportar, debe abrir o crear un archivo con el fopenfunció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:
% 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