guardar - importar datos txt a matlab
Lectura de valores de texto en variables de matlab desde archivos ASCII (3)
Si el encabezado está en la primera fila, entonces
A = dlmread(filename,delimString,2,1);
leerá los datos numéricos en la Matriz A.
Puedes usar
fid = fopen(filename)
headerString = fscanf(fid,''%s/n'') % reads header data into a string
fclose(fid)
A continuación, puede usar strtok para dividir headerString en una matriz de celdas. ¿Es posible abordar un enfoque con un número desconocido de columnas?
Editarllamada de función fscanf fija
Considere el siguiente archivo
var1 var2 variable3
1 2 3
11 22 33
Me gustaría cargar los números en una matriz y los títulos de las columnas en una variable que sería equivalente a:
variable_names = char(''var1'', ''var2'', ''variable3'');
No me importa dividir los nombres y los números en dos archivos, sin embargo, la preparación de archivos de código de Matlab y la evaluación de ellos no es una opción.
Tenga en cuenta que puede haber un número arbitrario de variables (columnas)
Solo use textscan con diferentes especificadores de formato.
fid = fopen(filename,''r'');
heading = textscan(fid,''%s %s %s'',1);
fgetl(fid); %advance the file pointer one line
data = textscan(fid,''%n %n %n'');%read the rest of the data
fclose(fid);
En este caso, ''encabezado'' será una matriz de celdas que contiene celdas con cada encabezado de columna dentro, por lo que tendrá que cambiarlas a una matriz de celdas de cadenas o lo que sea que desee. ''datos'' será una matriz de celdas que contiene una matriz numérica para cada columna que lea, por lo que tendrá que juntarlas para formar una matriz.
Sugiero importdata para operaciones como esta:
d = importdata(''filename.txt'');
El retorno es una estructura con los campos numéricos en un miembro llamado ''datos'', y los encabezados de columna en un campo llamado ''colheaders''.
Otra interfaz útil para importar datos de manipulación como estos es la clase ''dataset'' disponible en Statistics Toolbox.