Importación de Datos en MATLAB: Carga Eficiente de Archivos Externos
Importar datos significa cargar datos desde un archivo externo. La función importdata permite cargar diversos formatos.
Sintaxis de importdata
| Nº | Función y Descripción |
|---|---|
| 1 | A = importdata(filename) - Carga datos en array A desde archivo. |
| 2 | A = importdata('-pastespecial') - Carga desde portapapeles. |
| 3 | A = importdata(___, delimiterIn) - Especifica separador de columnas en ASCII. |
| 4 | A = importdata(___, delimiterIn, headerlinesIn) - Omite líneas de cabecera. |
| 5 | [A,delimiterOut,headerlinesOut] = importdata(___) - Detecta separador y cabeceras. |
Ejemplos
1. Cargar Imagen
filename = 'smile.jpg'; A = importdata(filename); image(A);
2. Archivo Texto con Delimitador y Cabecera
Archivo weeklydata.txt (valores separados por espacios, primera fila cabeceras).
filename = 'weeklydata.txt';
delimiterIn = ' ';
headerlinesIn = 1;
A = importdata(filename,delimiterIn,headerlinesIn);
for k = 1:7
disp(A.colheaders{1,k})
disp(A.data(:,k))
disp(' ')
end
3. Importar desde Portapapeles
A = importdata('-pastespecial')
Entrada/Salida de Bajo Nivel (Low-Level I/O)
Para control total, MATLAB ofrece funciones de bajo nivel (byte/carácter):
| Función | Descripción |
|---|---|
| fclose | Cierra archivo(s) |
| feof | Test fin de archivo |
| ferror | Errores de E/S |
| fgetl | Lee línea (sin newline) |
| fgets | Lee línea (con newline) |
| fopen | Abre archivo / info archivos abiertos |
| fprintf | Escribe en archivo de texto |
| fread | Lee archivo binario |
| frewind | Posición al inicio |
| fscanf | Lee datos formateados de texto |
| fseek | Mueve a posición específica |
| ftell | Posición actual en archivo |
| fwrite | Escribe en archivo binario |
Importar Texto con Bajo Nivel
- fscanf: lectura formateada.
- fgetl/fgets: línea a línea.
- fread: flujo de bytes/bits.
Ejemplo Completo: Datos de Lluvia
Archivo myfile.txt con estructura compleja (cabeceras, múltiples bloques).
Pasos:
- Abrir con
fopen→ obtenerfid. - Describir formato con especificadores (
%s,%d,%f). Usar*para saltar campos. - Leer cabecera para obtener M (número de meses).
- Bucle
forpara leer M bloques (7 filas x 5 columnas cada uno). - Guardar en estructura
mydatacon campostime,month,raindata. - Cerrar con
fclose(fid).
filename = '/data/myfile.txt'; rows=7; cols=5; fid = fopen(filename); M = fscanf(fid, '%*s %*s\n%*s %*s %*s %*s\nM=%d\n\n', 1); for n = 1:M mydata(n).time = fscanf(fid, '%s', 1); mydata(n).month = fscanf(fid, '%s', 1); 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 fclose(fid);
MATLAB
- Azure File Storage explicado: Guía para principiantes de almacenamiento cloud seguro y escalable
- MATLAB: Visión General del Entorno Líder en Computación Numérica
- Variables en MATLAB: Conceptos Básicos y Ejemplos Prácticos
- Tipos de Datos en MATLAB: Guía Completa de Conversión y Determinación
- Operadores en MATLAB: Guía Completa de Aritméticos, Relacionales, Lógicos y Bitwise
- Matrices en MATLAB: Creación, Referenciación y Manipulación de Datos
- MATLAB: Dominando Arrays Multidimensionales y Especiales
- Dominando la Notación de Dos Puntos en MATLAB: Vectores e Iteraciones
- MATLAB - Números: Tipos, Almacenamiento y Conversión
- Dominando Strings en MATLAB: Creación, Manipulación y Funciones
- Funciones en MATLAB: Definición, Workspace, Entradas y Salidas