En este Post voy a describir como leer archivos de excel, ya sean la versión 97-2003 que son los "xls" o la versión moderna correspondientes a los "xlsx". A demás mostraré como escribir en archivo excel lo que conlleva a crear uno en primer lugar.
1) Leer archivo excel "xls"
El archivo de excel que muestro es el siguiente; Calibracion_H.xls
Como pueden observar hay números en las columnas A y B a partir de la fila 3.
El objetivo es leer el archivo y tomar esas dos columnas.
Primero voy a escribir una función, el famoso archivo .m, y en su interior le indico que archivo leer.
function []=hern(w)
%----------- Leer archivo Excel ------------------
a= xlsread('C:/Users/cristian/Downloads/postt/Calibracion_H.xls');
En este post puse la barra que usamos para dividir porque no aparece la barra inclinada para el otro lado.
La función xlsread como su nombre lo indica lee el archivo. En su interior directamente coloqué el archivo y su ubicación, el mismo se encuentra dentro de la carpeta postt la cual está en descargas.
Una vez que tenemos los números de todas las columnas del archivo excel en la matriz "a" solo queda como utilizar esos datos.
Cada columna del archivo excel es una columna de la variable "a". Entonces para tomar la columna A del archivo excel simplemente elegimos la columna 1 de la matriz "a".
En resumen, leer columna A;
a( :, 1)
Para leer la columna B del archivo excel, que ahora es la segunda columna de la matriz "a" simplemente;
a( :, 2)
En la función .m de Matlab voy a dibujar las dos columnas como si fueran los ejes X e Y.
plot(a(:, 1), a(:, 2))
Hasta el momento el archivo de matlab, que lee al archivo excel, queda.
function []=hern(w)
%----------- Leer archivo Excel ------------------
a= xlsread('C:/Users/cristian/Downloads/postt/Calibracion_H.xls');
plot(a(:,1), a(:,2));
2) Leer archivo excel "xlsx"
El procedimiento es exactamente el mismo la única diferencia es que aclaramos su tipo como "xlsx".
El archivo excel xlsx que voy a leer es Monte Carlo. xlsx
a la función en matlab se le agrega el siguiente renglón;
W1= xlsread('C:/Users/cristian/Downloads/postt/Monte Carlo.xlsx');
Y leo la columna I del archivo excel. Recuerden que hay que contar las columnas, en consecuencia la columna I corresponde a la novena columna de la matriz W1.
W1(:, 9)
La función en matlab resulta hasta el momento;
function []=hern(w)
%----------- Leer archivo Excel ------------------
a= xlsread('C:/Users/cristian/Downloads/postt/Calibracion_H.xls');
plot(a(:,1), a(:,2));
x0=length(a(:,1));
figure, plot(a(83:1:x0, 1), a(83:1:x0, 2));
W1= xlsread('C:/Users/cristian/Downloads/postt/Monte Carlo.xlsx');
figure, plot(W1(:, 9));
En el último renglón dibujo la columna I, siendo la misma la novena columna de la matriz a.
3) Como escribir archivos excel "xls" o "xlsx"
Hasta el momento tenemos los dos archivos excel que leíamos.
Para escribir archivos "xls" usamos la función xlswrite();
Desde luego primero se decide que poner en el archivo excel, en este caso utilizo la función "rand()" para generar algunos datos aleatoreos.
El nombre del archivo xls será; Escribir_xls.xls
A demás le indico donde colocar estos datos, los cuales son un vector de mil filas y una columna. Entonces pongo dicho vector en la columna B de excel.
r=rand(1000, 1);
[q, e]= xlswrite('C:UserscristianDownloadsposttEscribir_xls.xls', r, 'B','B1');
Dentro de la función para escribir la famosa xlswrite() especifico en qué columna y a partir de qué fila comienza a poner los datos.
La primer letra B indica la columna. La segunda, donde dice 'B1' indica la fila.
Si quisiera escribir en la columna D a partir de la fila 4 sería;
[q, e]= xlswrite('C:/Users/cristian/Downloads/postt/Escribir_xls.xls', r, 'D','D4');
Archivos xlsx;
Para escribir archivos excel "xlsx" se procede igual, con la salvedad de aclarar que va a ser xlsx.
[q2, e2]= xlswrite('C:/Users/cristian/Downloads/postt/Escribir_xlsx.xlsx', r, 'B','B1');
Acotando escribo dos archivos uno xls y otro xlsx
la función en matlab resulta ser;
function []=hern(w)
%----------- Leer archivo Excel ------------------
a= xlsread('C:/Users/cristian/Downloads/postt/Calibracion_H.xls');
plot(a(:,1), a(:,2));
x0=length(a(:,1));
figure, plot(a(83:1:x0, 1), a(83:1:x0, 2));
W1= xlsread('C:/Users/cristian/Downloads/postt/Monte Carlo.xlsx');
figure, plot(W1(:, 9));
%----------- Escribir Archivo Excel----------------
r=rand(1000, 1);
[q, e]= xlswrite('C:/Users/cristian/Downloads/postt/Escribir_xls.xls', r, 'B','B1');
[q2, e2]= xlswrite('C:/Users/cristian/Downloads/postt/Escribir_xlsx.xlsx', r, 'B','B1');
No todo el mundo se destaca por su premio nobel, no?. Algunos usamos otras cosas. XD
Saludos;