En esta entrada vamos a aprender conectar Excel con Matlab para bien sea importar una hoja de excel dentro de matlab y efectuar diversos análisis o para exportar datos desde matlab hacia una hoja de excel.
Antes de comenzar, puedes dar un vistazo en el curso gratuito de Matlab del sitio WEB para que continues aprendiendo mas sobre este poderoso software de ingeniería.
También te invito a suscribirte al Canal de YouTube para que estés enterado de nuevas actualizaciones del curso y por si deseas aprender además sobre modelado y control de procesos.
Vamos a entender entonces como leer celdas de excel en matlab.
Importar Datos de Excel a Matlab
Para poder importar una hoja de excel a matlab podemos valernos de diferentes comandos que la herramienta nos disponibiliza.
Lee detalladamente como importar datos de excel a matlab en esta entrada pues verás diferentes métodos con sus ventajas y desventajas para que puedas analizar todos tus datos.
xlsread Matlab
El más común de todos para importar datos CSV o de excel a matlab se llama xlsread y su sintaxis se muestra a continuación:
[num,txt,raw] = xlsread(filename,sheet,xlRange)
Donde:
- num: datos numéricos en una matriz.
- txt: campos de texto del array de celdas
- raw: datos numéricos y de texto del array de celdas
- filename: Archivo de Excel escrito entre apostrofes ‘ file.xls’
- sheet: hoja de cálculo
- xlRange: rango especificado, ‘A1: C8’.
Con esta simple y popular instrucción conseguimos leer datos de excel en matlab para poder procesar y analizar nuestros datos.
Sin embargo, según la documentación de MatWorks para importar datos de excel a matlab la instrucción xlsread es ineficiente y probablemente será descontinuada.
Por lo tanto si queremos crear hojas de cálculo de excel dentro de matlab, se recomienda emplear cualquiera de las siguientes funciones:
- readtable
- readmatrix
- readcell
Estos comandos para convertir Excel a Matlab los explicamos en detalle a continuación junto con su video explicativo.
Matlab Readtable
Uno de los comandos que nos permiten copiar de excel a matlab es el comando readtable que disponibiliza el software.
Este comando permite crear Tablas de Excel en Matlab. Es decir, podremos valernos de otro tipo de datos dentro de matlab adicional a los que ya hemos estudiado conocido como table.
Su sintaxis es totalmente parecida con xlsread, donde los parámetros de entrada deben escribirse entre apostrofes », y los atributos obligatorios están señalados en negrito indicando cual es la hoja de cálculo y el rango que se desea seleccionar.
Los parámetros del readtable en matlab son Range y Sheet.
T = readtable(filename,‘sheet’,nameSheet,‘Range’,Range)
Como verás en el ejemplo mostrado en el video, esta opción es bastante útil de como mostrar una tabla de excel en matlab para su posterior análisis.
Matlab Readmatrix
El comando de Matlab de readmatrix es otra instrucción de programación que nos permite exportar datos de excel a matlab facilmente.
A partir de una hoja de cálculo de excel es posible generar una matriz de datos numéricos con este comando. La sintaxis obedece a la misma del caso anterior.
M = readmatrix(filename,‘sheet’,nameSheet,‘Range’,Range)
Matlab Readcell
Por último, una tercera opción para pasar datos de excel a matlab es usar la instrucción de readcell.
A partir de una hoja de cálculo de excel es posible generar una celda de datos con este comando. La sintaxis obedece a la misma de los casos anteriores.
C = readcell(filename,‘sheet’,nameSheet,‘Range’,Range)

Gráficas Tridimensionales MATLAB

Formato de Salida en MATLAB

Aprende a usar las Funciones Anónimas en MATLAB
Import Data Matlab
Import Data es una interfaz y herramienta bastante útil que nos permite, como su nombre lo indica, importar datos a Matlab.
Esta alternativa es mucho más práctica para importar los datos de una planilla de Excel dentro de Matlab.
Import Data puede ser ubicado en la barra de herramientas del Home.

Despues seleccionamos el fichero CSV o el fichero XLSX para obtener datos de excel a matlab.
Desde la herramienta, podemos seleccionar con el puntero del mouse las celdas que deseamos dentro de la hoja de datos de excel para posteriormente importarlos en matlab.

También podremos definir el tipo de dato que queremos almacenar dentro de matlab. Es decir, los datos que importamos de Excel podremos almacenarlos en matlab como datos del tipo: table, varias columnas de vectores, matriz numérica, arreglo de strings o arreglo de celulas.

Los datos en amarillo dentro de la tabla, son datos que no pueden ser importados y dependen del tipo de variable que nosotros deseemos almacenar dentro de Matlab.
Por ejemplo, si la tabla posee strings pero nosotros deseamos almacenar la tabla como una matriz numérica, estos datos NO serán importables en matlab.
La herramienta de importación nos permite transformar estos datos en amarillo a cualquier otro valor que nosotros deseemos y el cual podemos ingresar directamente en la aplicación. Por defecto, la herramienta coloca el comando NaN (Not a Number).

Cada columna de la tabla de excel que deseamos exportar a matlab automaticamente es categorizada con el tipo de dato que contiene dicha columna: Datetime, categorical, Number, Text, etc.
Usted es libre de modificar este tipo de dato directamente desde la aplicación.

Por último, se tiene la opción de importar los datos de una tabla o planilla de excel dentro de matlab de diversas formas: table, live scripts, scripts, functions.

Suscríbete a este sitio WEB para estar enterado de las nuevas entradas!
Escribir datos de Matlab en Excel
En nuestros proyectos también puede ser necesario aprender como exportar datos de matlab a excel.
A continuación vamos a detallar vários métodos de como exportar datos de matlab a excel.
xlswrite matlab
Este es otro de los comandos más comunes a la hora de querer exportar de matlab a excel para la creación de archivos .xls o .csv.
La sintaxis del comando xlswrite de matlab se muestra a continuación:
xlswrite(filename, A, sheet, xlRange)
Donde:
- filename: Es el nombre que deseamos colocarle al archivo de excel escrito entre apostrofes ‘ file.xls’
- A: Es la matriz de datos de Matlab que desea escribirse en el archivo de excel.
- sheet: hoja de cálculo donde se desea escribir la matriz A
- xlRange: rango especificado, ‘A1: C8’.
Con esta simple y popular instrucción conseguimos escribir datos en hojas de cálculo de Excel usando el software de matlab rápidamente.
Sin embargo, al igual que el comando xlsread, este comando xlswrite también es ineficiente y probablemente será descontinuado.
Entonces para exportar variables de matlab a excel existen otros métodos mucho más interesantes descritos a continuación.
writetable
Uno de los comandos que nos permiten usar datos de matlab y exportarlos hacia excel es el writetable.
Con este comando podremos directamente exportar las variables del tipo table de matlab (que de por si son muy parecidas a las tablas de excel) y almacenarlos directamente en una hoja de cálculos.
Su sintaxis es totalmente parecida con xlswrite, donde los parámetros de entrada deben escribirse entre apostrofes », y los atributos obligatorios están señalados en negrito indicando cual es la hoja de cálculo y el rango que se desea seleccionar.
Los parámetros del writetable en matlab son la variable table de matlab (T), el Range y el Sheet.
writetable(T, filename,‘sheet’,nameSheet,‘Range’,Range)
Como verás en el ejemplo mostrado en el video, esta opción es bastante útil de como escribir una tabla en excel usando el matlab.
writematrix
El comando de Matlab de writematrix es otra instrucción de programación que nos permite exportar datos de matlab a excel facilmente.
A partir de cualquier matriz que creamos dentro de matlab, podremos escribirla directamente hacia excel usando esta instrucción.
La sintaxis obedece a la misma del caso anterior, donde M es una matriz cualquiera creada dentro de MATLAB.
writematrix(M, filename,‘sheet’,nameSheet,‘Range’,Range)
writecell
Por último, una tercera opción para pasar datos de matlab a excel es usar la instrucción de writecell.
A partir de cualquier celula, celda o cell creada dentro del software de matlab, podremos llevarla directamente hacia excel usando este comando.
La sintaxis obedece a la misma de los casos anteriores. Donde C hace referencia a una cell creada dentro de matlab.
writecell(C, filename,‘sheet’,nameSheet,‘Range’,Range)
Ejemplos
A continuación se muestran los scripts junto con las tablas de excel mostradas en el video para que practiques.
Leer Datos de Excel en Matlab
usando xlsread
%% Manejo de Datos de Archivos de Excel % By: Sergio Andres Castaño Giraldo % https://controlautomaticoeducacion.com/ clc close all clear all %% Comando xlsread %Leer datos de una hoja de Excel (Recomendado hasta Matlab R2018b) [num,txt,raw] = xlsread('Datos1','Adquisicion 1'); % num(:,1) = Tiempo % num(:,2) = Entrada % num(:,3) = Salida %Crea una figura figure(1) subplot(211) %Divide la figura en 2 filas y 1 columna (selecciona sub1) plot(num(:,1),num(:,3)) %Grafica la salida xlabel(txt{1}) %legenda en el eje X ylabel(txt{3}) %legenda en el eje Y subplot(212) %Divide la figura en 2 filas y 1 columna (selecciona sub2) plot(num(:,1),num(:,2)) %Grafica la salida xlabel(txt{1}) %legenda en el eje X ylabel(txt{2}) %legenda en el eje Y %_________________________________________ % Seleccionando Rangos % Rango rectangular, especificado como un vector de caracteres o una cadena. % Especifique el xlRange usando dos esquinas opuestas que definen la región a leer. [num1,txt1,raw1] = xlsread('Datos1','Adquisicion 2','A5:C175'); dat_miss = find(isnan(num1)); [X,Y] = ind2sub(size(num1),dat_miss); if ~isempty(X) warning(['Estan faltando datos entre las filas ' num2str(X(1)) ':' num2str(X(end))... ' y las columnas ' num2str(Y(1)) ':' num2str(Y(end))]); end % num(:,1) = Tiempo % num(:,2) = Entrada % num(:,3) = Salida %Crea una figura figure(2) subplot(211) %Divide la figura en 2 filas y 1 columna (selecciona sub1) plot(num1(:,1),num1(:,3)) %Grafica la salida xlabel('Tiempo') %legenda en el eje X ylabel('Salida') %legenda en el eje Y subplot(212) %Divide la figura en 2 filas y 1 columna (selecciona sub2) plot(num1(:,1),num1(:,2)) %Grafica la salida xlabel('Tiempo') %legenda en el eje X ylabel('Salida') %legenda en el eje Y
usando readtable
%% Manejo de Datos de Archivos de Excel % By: Sergio Andres Castaño Giraldo % https://controlautomaticoeducacion.com/ clc close all clear all %% Comando readtable % https://la.mathworks.com/help/matlab/ref/readtable.html T = readtable('SampleData.xlsx','sheet','SalesOrders'); T1 = readtable('SampleData.xlsx','sheet','SalesOrders','Range','A2:G21'); % M = readmatrix('SampleData.xlsx','sheet','SalesOrders') % C = readcell('SampleData.xlsx','sheet','SalesOrders') %% Buscar el nombre de los representantes rep = ''; %Inicializo el string len = size(T); %Busco el tamaño de la tabla k=1; %Inicializo el indice k for i=1:len(1) if ~strcmpi(rep,T.Rep{i}) %compara el string "rep" con el string "T.Rep" rep{k,1}=T.Rep{i}; %si son diferentes entonces almacena el nombre en "rep" k=k+1; %incrementa el indice k end end %% Buscar cuanto vendio el representante Jones indR = find(strcmpi(rep, 'Jones')); Rep1 = find(strcmpi(T.Rep, rep{indR})); Total_Rep1 = sum(T.Total(Rep1)); disp(strcat('El representante:', rep{indR},' vendió un total de $',num2str(Total_Rep1)))
Escibir datos de Matlab a Excel
A continuación te dejo el código de ejemplo para que lo descargues:
%% ESCRIBIR de Datos de Archivos de Excel % By: Sergio Andres Castaño Giraldo % https://controlautomaticoeducacion.com/ % Se desea exportar o escribir los datos del experimento de un laboratório % de temperatura que están almacenados en el archivo de Matlab "dat2.mat", % ese archivo contiene los datos del tiempo, disturbio, y señal del sensor % de temperatura además de tener las aproximaciones de dos modelos: n % modelo lineal y un modelo no lineal. % Exporte todos esos datos a EXCEL. clc clear all close all %Carga los datos load('dat2.mat'); %% Crea una tabla con los datos Modelo_Lineal = y(:,1); Modelo_NO_Lineal = y(:,2); Datos = y(:,3); T = table(t,u,Modelo_Lineal,Modelo_NO_Lineal,Datos); %% Comando xlswrite (no recomendado por matlab) L = {'Tiempo','Disturbio','Modelo Lineal','Modelo No lineal','Datos'}; %xlswrite solo acepta matrices o celulas, convierto la table en cell C = table2cell(T); % Concateno en la matriz cell la legenda de cada columna A = [L;C]; xlswrite('TCLAB.xlsx',A,'xlswrite','A2'); %% Comando writetable writetable(T,'TCLAB.xlsx','sheet','WriteTable','Range','A2'); %% Comando writematrix % Solo toma los valores numéricos. Vamos a escribir unicamente hasta el % modelo lineal (columnas A1, B1 y C1) M = [t,u,y]; writematrix(M,'TCLAB.xlsx','sheet','WriteMatrix','Range','A1:C601'); %% Comando writecell %Tomemos hasta la mitad de los datos writecell(A,'TCLAB.xlsx','sheet','WriteCell','Range','A1:E301');
Eso es todo por la entrada del dia de hoy, espero les haya gustado y hayan aprendido algo nuevo. Si te ha servido el contenido de esta entrada, de los videos y los códigos de implementación y deseas apoyar mi trabajo invitandome a un café super barato, puedes hacerlo en el siguiente link:
👉 Invitar a Sergio a un Café ☕️
Que esten muy bien, nos vemos en la siguiente entrada.
Mi nombre es Sergio Andres Castaño Giraldo, y en este sitio web voy a compartir una de las cosas que mas me gusta en la vida y es sobre la Ingeniería de Control y Automatización. El sitio web estará en constante crecimiento, voy a ir publicando material sobre el asunto desde temas básicos hasta temas un poco más complejos. Suscríbete al sitio web, dale me gusta a la página en Facebook y únete al canal de youtube. Espero de corazón que la información que comparto en este sitio, te pueda ser de utilidad. Y nuevamente te doy las gracias y la bienvenida a control automático educación.