English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Importar datos en MATLAB significa cargar datos desde archivos externos. LaimportdataLa función permite cargar varios tipos de archivos de datos en diferentes formatos. Tiene las siguientes cinco formas-
Número | Descripción de la función |
---|---|
1 | A = importdata(filename) defilenamerepresentaEl archivoCarga los datos en el array A. |
2 | A = importdata('-pastespecial') Carga los datos desde el portapapeles del sistema en lugar de desde un archivo. |
3 | A = importdata(___, delimiterIn) Interpreta delimiterIn como el separador de columnas de un archivo ASCII, nombre de archivo o datos en el portapapeles. Puede usar delimiterIn para cualquier parámetro de entrada en la sintaxis anterior. |
4 | A = importdata(___, delimiterIn, headerlinesIn) Carga los datos desde un archivo ASCII, nombre de archivo o portapapeles, y desde la líneaheaderlinesIn + 1Comienza a leer los datos numéricos. |
5 | [A, delimiterOut, headerlinesOut] = importdata(___) Utilice cualquier parámetro de entrada de la sintaxis anterior para devolver el carácter del separador detectado en el archivo ASCII de entrada en delimiterOut y el número de líneas de encabezado detectado en headerlinesOut. |
Por defecto, Octave no admite laimportdata()La función no es compatible, por lo que debe buscar e instalar este paquete para que el siguiente ejemplo sea compatible con la instalación de Octave.
Vamos a cargar y mostrar el archivo de imagen. Cree un archivo de script y escriba el siguiente código-
filename = 'smile.jpg'; A = importdata(filename); image(A);
Al ejecutar el archivo, MATLAB mostrará el archivo de imagen. Pero debe guardarse en el directorio actual.
En este ejemplo, importamos un archivo de texto y especificamos Delimiter y Títulos de Columna. Creemos un archivo ASCII separado por espacios que contengaweeklydata.txtTítulos de columna.
Nuestro archivo de texto weeklydata.txt se ve así-
SunDay MonDay TuesDay WednesDay ThursDay FriDay SaturDay 95.01 76.21 61.54 40.57 55.79 70.28 81.53 73.11 45.65 79.19 93.55 75.29 69.87 74.68 60.68 41.85 92.18 91.69 81.32 90.38 74.51 48.60 82.14 73.82 41.03 0.99 67.22 93.18 89.13 44.47 57.63 89.36 13.89 19.88 46.60
Crear un archivo de script y escribir el siguiente código dentro de él-
filename = 'weeklydata.txt'; delimiterIn = ' '; headerlinesIn = 1; A = importdata(filename, delimiterIn, headerlinesIn); % Ver datos for k = [1:7} disp(A.colheaders{1, k) disp(A.data(:, k)) disp(' ') end
Al ejecutar el archivo, muestra el siguiente resultado-
SunDay 95.0100 73.1100 60.6800 48.6000 89.1300 MonDay 76.2100 45.6500 41.8500 82.1400 44.4700 TuesDay 61.5400 79.1900 92.1800 73.8200 57.6300 WednesDay 40.5700 93.5500 91.6900 41.0300 89.3600 ThursDay 55.7900 75.2900 81.3200 0.9900 13.8900 FriDay 70.2800 69.8700 90.3800 67.2200 19.8800 SaturDay 81.5300 74.6800 74.5100 93.1800 46.6000
En este ejemplo, importemos datos desde el portapapeles.
Copia las siguientes líneas al portapapeles-
Las matemáticas son simples
Cree un archivo de script e ingrese el siguiente código-
A = importdata('-pastespecial')
Al ejecutar el archivo, muestra el siguiente resultado-
A = 'Las matemáticas son simples'
La función importdata es una función avanzada. En MATLAB, la capa de archivos I/La función O permite un control máximo de los datos de lectura y escritura de archivos. Sin embargo, estas funciones necesitan información detallada del archivo para funcionar eficazmente.
MATLAB为字节或字符级别的读写操作提供以下函数-
函数 | MATLAB proporciona las siguientes funciones para las operaciones de escritura y lectura a nivel de bytes o caracteres |
---|---|
la función | describe |
fclose | cierra uno o todos los archivos abiertos |
feof | prueba de final de archivo/ferror |
MATLAB proporciona las siguientes funciones para la importación de datos de archivos de texto a nivel de bajo nivel | acerca de la I |
fgetl | información de error O |
usando | lee una línea del archivo, eliminando el carácter de nueva línea |
lee una línea del archivo, manteniendo el carácter de nueva línea | abre el archivo o obtiene información sobre el archivo abierto |
fgets | fprintf |
escribe datos en un archivo de texto | leer datos desde un archivo binario |
por defecto, | frewind |
mover el indicador de posición del archivo al principio del archivo abierto | leer datos desde un archivo de texto |
fseek | moverse a la posición especificada en el archivo |
ftell | en la posición del archivo abierto |
importar con I-
por defecto,de texto O
MATLAB proporciona las siguientes funciones para la importación de datos de archivos de texto a nivel de bajo nivellas funciones leen datos formateados de archivos de texto o ASCII.fgetly
fgetsel tiempo, donde cada carácter de nueva línea separa una línea leída del archivo.
la función lee datos de flujo a nivel de bytes o bits.2012ejemplo en línea
en junio, julio y agosto de ese año. En el directorio de trabajo guardamos un archivo de datos de texto llamado "myfile.txt". Este archivo almacena datos de precipitación de tres meses;
El archivo de datos myfile.txt contiene conjuntos repetidos de mediciones de tiempo, mes y precipitación de cinco ubicaciones. Los datos de encabezado almacenan el número de meses M; por lo tanto, tenemos M conjuntos de mediciones.-
Este archivo se ve así Datos de Precipitación Meses: Junio, Julio, Agosto 3 12:00:00 Junio-2012 17.21 28.52 39.78 16.55 23.67 19.15 0.35 17.57 .00 12.01 17.92 28.49 17.40 17.06 11.09 9.59 9.33 M =31 0.23 10.46 13.17 .00 14.89 19.33 20.97 19.50 17.65 14.45 14NaN 0. 18.23 10.34 17.95 16.46 19.34 09:10:02 Julio-2012 12.76 16.94 14.38 11.86 16.89 20.46 23.17 .00 24.89 19.33 30.97 49.50 47.65 24.45 34NaN 0. 18.23 30.34 27.95 16.46 19.34 30.46 33.17 .00 34.89 29.33 30.97 49.50 47.65 24.45 34NaN 0. 28.67 30.34 27.95 36.46 29.34 15:03:40 Agosto-2012 17.09 16.55 19.59 17.25 19.22 17.54 11.45 13.48 22.55 24.01 .00 21.19 25.85 25.05 27.21 26.79 24.98 12.23 16.99 18.67 17.54 11.45 13.48 22.55 24.01 .00 21.19 25.85 25.05 27.21 26.79 24.98 12.23 16.99 18.67
NaN-
importaremos datos desde este archivo y mostraremos estos datos. Sigue estos pasosusandofopen
la función abre el archivo y obtiene el identificador de archivo.se utilizan para describir los datos en el archivomarcadores de formato por ejemplo,%s 'indica una cadena de caracteres,%d 'indica un entero, o%f
'indica un número de coma flotante.*Para saltar los caracteres de texto en el archivo, inclúyalos en la descripción de formato. Para saltar los campos de datos, usa un asterisco (*) en el marcador.
)。-
M = fscanf(fid, '%*s %*s\n%*s %*s %*s %*s\nM=%d\n\n' 1);
por ejemplo, para leer el encabezado y devolver un solo valor de M, escribimos asípor defecto,fscanf3leer datos según nuestra descripción de formato hasta que no se encuentre contenido que coincida con los datos o se alcance el final del archivo. Aquí, utilizaremos un bucle for para leer7un conjunto de datos, y leeremos cada vez5filas y
columna.crearemos un espacio de trabajo llamadomydata-la estructura, para almacenar los datos leídos de los archivos. Esta estructura tiene tres campos, mes, y} raindataArreglo.
Crear un archivo de script y escribir el siguiente código dentro de él-
filename = '/data/myfile.txt'; rows = 7; cols = 5; %Abrir el archivo fid = fopen(filename); %Leer la cabecera del archivo, encontrar M (número de meses) M = fscanf(fid, '%*s %*s\n%*s %*s %*s %*s\nM=%d\n\n' 1); %Leer cada grupo de datos de medición for n = 1:M mydata(n).time = fscanf(fid, '%s', 1); mydata(n).month = fscanf(fid, '%s', 1); %fscanf llena el array en orden de columnas %Transponer los resultados mydata(n).raindata = ... fscanf(fid, '%f', [rows, cols]); end for n = 1:M disp(mydata(n).time), disp(mydata(n).month) disp(mydata(n).raindata) end %Cerrar el archivo fclose(fid);
Al ejecutar el archivo, muestra el siguiente resultado-
12:00:00 Junio-2012 17.2100 17.5700 11.0900 13.1700 14.4500 28.5200 NaN 9.5900 NaN 14.0000 39.7800 12.0100 9.3300 14.8900 18.2300 16.5500 17.9200 NaN 19.3300 10.3400 23.6700 28.4900 0.3100 20.9700 17.9500 19.1500 17.4000 0.2300 19.5000 16.4600 0.3500 17.0600 10.4600 17.6500 19.3400 09:10:02 Julio-2012 12.7600 NaN 34.0000 33.1700 24.4500 16.9400 24.8900 18.2300 NaN 34.0000 14.3800 19.3300 30.3400 34.8900 28.6700 11.8600 30.9700 27.9500 29.3300 30.3400 16.8900 49.5000 16.4600 30.9700 27.9500 20.4600 47.6500 19.3400 49.5000 36.4600 23.1700 24.4500 30.4600 47.6500 29.3400 15:03:40 Agosto-2012 17.0900 13.4800 27.2100 11.4500 25.0500 16.5500 22.5500 26.7900 13.4800 27.2100 19.5900 24.0100 24.9800 22.5500 26.7900 17.2500 NaN 12.2300 24.0100 24.9800 19.2200 21.1900 16.9900 NaN 12.2300 17.5400 25.8500 18.6700 21.1900 16.9900 11.4500 25.0500 17.5400 25.8500 18.6700