Logo Studenta

MATLAB BÁSICO (8)

¡Este material tiene más páginas!

Vista previa del material en texto

Luis O. Moncada Albitres 
Luis D. Moncada Torres 
 
 
 
 
 
Guía de MATLAB para 
principiantes 
 
 
 
 
 
 
 
 
 
 
 
Guía de MATLAB para principiantes 
 
 
Autores: 
Luis O. Moncada Albitres 
Luis D. Moncada Torres 
 
Editor: 
© Luis David Moncada Torres 
Jr. Negrón Ugarte N°957 – Las Quintanas 
luisd.moncada@hotmail.com 
Trujillo – Perú 
 
Primera edición digital, febrero 2020 
 
ISBN: 978-612-00-5024-8 
Libro digital disponible en www.ingenieriaquimica.tech 
 
 
PROLOGO 
 
Guía de MATLAB para principiantes está dirigido a estudiantes que utilizan 
MATLAB por primera vez y que no tienen conocimientos previos sobre 
programación. El presente libro tiene por objetivo proporcionar a los 
estudiantes conocimientos básicos para usar el entorno de MATLAB 
básicamente como una herramienta para la resolución de problemas. La obra 
se puede utilizar como un libro de texto para estudiantes de los primeros cursos 
de ingeniería. 
El orden de la presentación de los temas ha sido elaborado a partir de la 
experiencia en la enseñanza de MATLAB en cursos introductorios de 
ingeniería. 
El Capítulo 1 nos describe el entorno de trabajo y conceptos básicos de 
MATLAB, el Capítulo 2 trata la representación de gráficos en dos dimensiones, 
mientras que el Capítulo 3 trata sobre la utilización del programa para resolver 
operaciones matemáticas desde unas muy básicas como operaciones 
aritméticas hasta más complejas como EDOs. 
El capítulo 4 trata sobre como MATLAB puede ser usado para realizar 
operaciones con polinomios, el Capítulo 5 muestra el uso de gráficos en tres 
dimensiones, en el Capítulo 6 se explican los M-archivos, el diseño de 
funciones y la creación de ficheros script. 
La programación en MATLAB se aborda en el Capítulo 7, donde se explican 
desde las sentencias condicionales hasta los bucles. El Capítulo 8, es el último 
capítulo del presente texto y se aborda la interfaz gráfica de MATLAB. 
 
 
INDICE 
 
1. INICIANDO MATLAB 1 
1.1. ¿Qué es MATLAB? 1 
1.2. Entorno de trabajo 1 
1.3. Asignaciones 3 
1.4. Vectores y Matrices 4 
1.5. Diferentes formatos para los datos 7 
1.6. WHO, WHOS, CLEAR 7 
2. GRAFICAS 2D EN MATLAB 9 
2.1. El comando plot 9 
2.2. El comando subplot 15 
2.3. Otras gráficas 16 
3. OPERACIONES MATEMÁTICAS 25 
3.1. Aritmética elemental 25 
3.2. Funciones matemáticas comunes 27 
3.3. Ecuaciones 30 
3.4. Sistema de ecuaciones lineales 31 
3.5. Series 33 
3.6. Límites 34 
3.7. Derivada de una función 35 
3.8. Integral de una función 35 
3.9. Ecuaciones diferenciales 37 
4. OPERACIONES CON POLINOMIOS 42 
4.1. Polinomios 42 
4.2. Valor de un polinomio 42 
4.3. Ajuste a un polinomio 43 
4.4. Suma de polinomios 44 
4.5. Producto de dos polinomios 45 
4.6. Cociente 45 
4.7. Derivada 46 
4.8. Integral 46 
4.9. Raíces de un polinomio 47 
4.10. Factorización 48 
4.11. Expansión 48 
5. GRAFICAS 3D EN MATLAB 49 
5.1. Comando plot3 49 
5.2. Comando comet3 50 
5.3. Comando mesh 50 
5.4. Comando surf 53 
6. M-ARCHIVOS 60 
6.1. Editor 60 
6.2. Script 60 
6.3. Funciones 62 
7. DECISIONES y CICLOS 64 
7.1. Sentencia condicional if 64 
7.2. Sentencia condicional if else 67 
7.3. Sentencia if anidada 70 
7.4. Bucle for 72 
7.5. Bucle while 75 
8. INTERFAZ GRÁFICA DE USUARIO 78 
8.1. Introducción 78 
8.2. Inicio 78 
8.3. Propiedades de los componentes 81 
8.4. Funcionamiento de una aplicación GUI 83 
8.5. Manejo de datos entre los elementos de 
la aplicación y el archivo .m 83 
8.6. Sentencias GET Y SET 84 
8.7. Radio Button, Button Group 87 
8.8. ListBox 90 
9. BIBLIOGRAFIA 93 
 
 
Guía de MATLAB – Para principiantes 
 
1 
 
1. INICIANDO MATLAB 
 
1.1. ¿Qué es MATLAB? 
 
Es una herramienta computacional para realizar cálculos numéricos con 
vectores y matrices, además también se puede trabajar con números 
escalares, cadenas de caracteres y con otras estructuras de información más 
complejas. MATLAB es el nombre abreviado de MATrix LABoratory. 
 
 
1.2. Entorno de trabajo 
 
MATLAB dispone de las siguientes sub-ventanas: 
 
 
 
 
 
 
 
 
 
1. Ventana de comandos (Command Window) 
2. Directorio actual (Current Folder) 
3. Espacio de trabajo (Workspace) 
4. Historial de comandos (Command History) 
Ventana de comandos (Command Window) 
La parte más importante de la ventana inicial es la Ventana de comandos. En 
esta ventana es donde se ejecutan los comandos luego del promp 
característico >>. 
1 
2 
4 
3 
Guía de MATLAB – Para principiantes 
 
2 
 
El símbolo >> determina la línea de comandos donde podremos escribir y 
ejecutar los comandos. 
 
Importante: 
• Para teclear un comando el cursor debe estar situado después del 
símbolo >>. 
• Una vez que el comando se ha tecleado, se pulsa la tecla Intro para 
ejecutarlo. 
• Si un comando es demasiado grande (límite máximo de 4096 
caracteres) se puede dividir tecleando puntos suspensivos (…) y 
pulsando la tecla Intro, luego se continua la escritura del comando 
en la línea siguiente. 
• Cuando se teclea el símbolo de porcentaje (%) al principio de una 
línea, MATLAB considerará dicha línea como un comentario. 
 
Ejemplo: 
 
>> x=rand(10); %Creamos una matriz de 10 x 10 con números aleatorios entre (0 
y 1) 
 
Espacio de trabajo (Workspace) 
Esta ventana contiene información sobre todas las variables que se hayan 
definido en esta sesión y permite ver y modificar las mismas. 
Al hacer doble clic sobre cualquier variable lanza automáticamente una 
ventana de documento (Document window) que contiene el editor de 
variables (Variable editor). 
 
 
 
Guía de MATLAB – Para principiantes 
 
3 
 
 
Directorio actual (Current folder) 
Esta ventana lista todos los archivos en una carpeta, la ubicación por defecto 
del directorio varía con la versión del software. El directorio actual se puede 
cambiar y seleccionar otro. 
 
 
 
 
Historial de comandos (Command history) 
La ventana de historial de comandos (Command history) registra los 
comandos que se escriben en la ventana de comandos y conserva una lista 
de todos ellos. Conforme ejecute cálculos cada vez más complicados 
encontrará que la ventana de historia de comandos es útil. 
 
1.3. Asignaciones 
 
Uno de los elementos fundamentales en la programación son las variables. 
Una variable se define como un objeto que puede tomar el mismo valor a lo 
largo de todo el programa o bien puede ir cambiando al ejecutar diferentes 
acciones. 
 
MATLAB tiene un conjunto de variables predefinidas: 
ans Contiene el valor del último comando no asignado a una variable. 
pi Es el valor aproximado de π. 
eps Representa la diferencia más pequeña entre dos números (2^(-
52)). 
inf Representa el infinito. 
i Se define como la raíz cuadrada de -1. 
j Es igual a i. 
NaN Es la abreviación de Not a Number. Se usa cuando MATLAB no 
puede determinar un valor numérico válido. 
 
Importante: 
• Todos los nombres deben comenzar con una letra. 
• Los nombres pueden tener cualquier longitud, pero sólo se usan los 
primeros 63 caracteres. (Verificarlo con el comando 
namelengthmax) 
• Los únicos caracteres permisibles son letras, números y el guión 
bajo. 
Guía de MATLAB – Para principiantes 
 
4 
 
• MATLAB distingue entre mayúsculas y minúsculas por lo que x y X 
no serán las mismas variables ni lo serán tampoco Nodos, nodos y 
NODOS. 
• Con el comando isvarname puede verificar si se permite el nombre 
de la variable. 
>> isvarname if 
ans =
 
 0 
>> isvarname luis 
ans = 
 1 
• El comando iskeyword hace que MATLAB elabore una lista de 
nombres reservados, es decir que no se pueden asignar como 
nombres de variable. 
 
Ejemplo: 
 
>> A=0.5 
A = 
 0.50 
 
>> B=pi 
B = 
 3.1416 
 
1.4. Vectores y Matrices 
 
Para crear un vector introducimoslos valores deseados separados por 
espacios (o comas) todo ello entre corchetes [ ]. Si lo que queremos es crear 
una matriz lo hacemos de forma análoga pero separando las filas con puntos 
y comas (;). 
 
Ejemplo: 
 
>> x = [5 7 -2 4 -6] % es un vector, los 
elementos los separamos con espacios 
x = 
5 7 -2 4 -6 
Guía de MATLAB – Para principiantes 
 
5 
 
>> y = [2,1,3,7] % es otro vector, los elementos 
los separamos con comas 
y = 
2 1 3 7 
>> z = [0 1 2,3 4,5] % es otro vector, da igual 
separar los elementos por comas o espacios 
z = 
0 1 2 3 4 5 
>> A = [1 2 3; 4 5 6] % es una matriz con 2 filas y 3 
columnas 
A = 
1 2 3 
4 5 6 
 
Para acceder a los elementos individuales de un vector o matriz lo haremos 
utilizando subíndices, así x(n) sería el n-ésimo elemento del vector x. Si 
queremos acceder al último podemos indicarlo usando end como subíndice. 
La posición absoluta del elemento en la matriz se determina desde el 
elemento X11 (posición 1) hacia abajo y luego hacia la derecha siguiendo el 
siguiente esquema: 
 
Ejemplo: 
 
>> x = [5 7 -2 4 -6]; 
>> x (2) % segundo elemento del vector x 
ans = 
7 
>> x (end) % último elemento del vector x 
ans = 
-6 
 
>> X=[5 7 9 8; 1 4 5 7; 3 3 2 7] 
X = 
 5 7 9 8 
 1 4 5 7 
 3 3 2 7 
>> X(3) % tercer elemento de la matriz X 
ans = 
 3 
Guía de MATLAB – Para principiantes 
 
6 
 
>> X(10) % décimo elemento de la matriz X 
 
ans = 
 8 
>> X(end) % último elemento de la matriz X 
ans = 
 7 
 
Para el caso de las matrices también es posible identificar un elemento 
cualquiera según la siguiente sintaxis: A(fila, columna) 
 
Ejemplo: 
 
>> X(1,3) % fila número 1, columna número 3
 
ans = 
 9 
 
También es posible utilizar el operador “:” para referirse a un conjunto de 
elementos de una matriz o vector. 
 
>> X(:,1) % Todas las filas, columna 1 de la matriz X. 
ans = 
 5 
 1 
 3 
 
>> X(3,:) % Todas las columnas, fila 3 de la matriz X. 
ans = 
 3 3 2 7 
 
>> X(:,:) % Todos los elementos de la matriz. 
ans = 
 5 7 9 8 
 1 4 5 7 
 3 3 2 7 
 
 
 
 
 
 
Guía de MATLAB – Para principiantes 
 
7 
 
1.5. Diferentes formatos para los datos 
 
Existen diferentes formatos de salida para los datos en MATLAB. Veamos 
algunos ejemplos. 
>> d=1/33 
d= 
0.0303 
>> format short, d %Formato corto, 4 cifras 
decimales. 
d = 
 0.0303 
>> format long, d %Formato largo, 14 cifras 
decimales. 
d= 
0.03030303030303 
>> format short e, d %Formato corto con mantisa y 
exponente. 
d= 
3.0303e-02 
>> format long e, d %Formato largo con mantisa y 
exponente. 
d= 
3.030303030303030e-02 
>> format rat, d %Formato racional. 
d= 
1/33 
>> format bank, d %Formato con 2 dígitos 
decimales. 
d = 
 0.03 
 
1.6. WHO, WHOS, CLEAR 
 
Un comando de uso frecuente es who que nos permite conocer el número y 
nombre de las variables usadas a lo largo del programa o de la sesión. Su 
formato es: 
 
>> who 
Your variables are: 
A u vfil x 
ans vcol w y 
 
Guía de MATLAB – Para principiantes 
 
8 
 
Donde las variables corresponden a otra ejecución del programa. 
 
El comando whos nos muestra, además del nombre de las variables, 
información adicional de cada variable, distinguiendo si es vector o escalar. 
 
>> whos 
Name Size Bytes Class 
A 3x4 96 double array 
ans 4x1 32 double array 
u 1x1 8 double array 
vcol 4x1 32 double array 
vfil 1x4 32 double array 
w 1x1 8 double array 
x 1x1 8 double array 
y 1x1 8 double array 
 
Debemos tener en cuenta que MATLAB en cada sesión mantiene en 
memoria todas las variables utilizadas hasta ese momento y que únicamente 
el comando clear hace que elimine el valor de todas las variables. 
 
>> clear 
 
Si ahora tecleamos who no se produce ninguna salida. 
 
 
 
 
 
 
 
 
 
 
 
 
 
Guía de MATLAB – Para principiantes 
 
9 
 
2. GRAFICAS 2D EN MATLAB 
 
 
2.1. El comando plot 
 
El usuario de MATLAB puede dibujar fácilmente un conjunto de pares de 
puntos, y una forma de hacerlo es mediante el comando plot. 
 
>> plot(argumentos) 
 
Ejemplos: 
 
Dibujemos el vector de ordenadas y el de abscisas: 
 
>> x=[-4 -2 0 1 3 5]; 
>> y=[16 4 0 1 9 25]; 
>> plot(x,y); 
 
 
 
 
 
 
 
 
 
Guía de MATLAB – Para principiantes 
 
10 
 
Dibujemos un vector de números complejos: 
 
>> z=[1 2+i 3 2-i 3-2*i]; 
>> plot(z); 
 
 
Dibujemos una matriz: 
 
>> A=[1 1 0.5; 2 4 -0.5; 3 9 0.5; 4 16 -0.5; 5 25 0.5]; 
>> plot(A); 
 
 
Guía de MATLAB – Para principiantes 
 
11 
 
Si en el ejemplo anterior elegimos las ordenadas obtenemos: 
 
>> x=[0 0.1 0.2 0.3 0.4]; 
>> A=[1 1 0.5; 2 4 -0.5; 3 9 0.5; 4 16 -0.5; 5 25 0.5]; 
>> plot(x,A); 
 
También podemos dibujar diferentes funciones en el mismo gráfico. 
 
>> x=0:0.1:2; 
>> A=[sin(pi*x); 0.5+0.5*x]; 
>> plot(x,A); 
 
Guía de MATLAB – Para principiantes 
 
12 
 
Podemos intercambiar los ejes sin más que escribir 
 
>> plot(A,x) 
 
 
Opciones del comando plot 
Sintaxis Descripción 
plot(x,y, LineSpec) Dibuja la grafica de abcisas x y 
ordenadas y con las opciones de 
estilo dadas por LineSpec. 
plot(x1,y1, LineSpec1, x2,y2, 
LineSpec2,...) 
Dibuja la gráfica de abcisas x1 y 
ordenadas y1 con las opciones de 
estilo dadas por LineSpec1, la 
gráfica de abcisas x2 y ordenadas 
y2 con las opciones de estilo dadas 
por LineSpec2 y así con el resto de 
ternas. Si se omiten las opciones 
de estilo MATLAB escoge el color y 
estilo para cada grafico. 
 
Así por ejemplo, LineSpec=’ys-’ dibuja una línea amarilla, sólida y con 
cuadrados como marcadores, exactamente igual que LineSpec=’s-y’ o 
LineSpec=’sy-’ aunque siempre es mejor ser homogéneos en cada uno de los 
usos de estos parámetros. 
 
 
 
Guía de MATLAB – Para principiantes 
 
13 
 
Marcador Estilo de línea Color 
. punto 
* estrella 
x cruz 
o cırculo 
+ más 
s cuadrado 
d rombo 
p pentágono 
h hexágono 
v triangulo abajo 
< triangulo izquierda 
> triangulo derecha 
^ triangulo arriba 
- solida 
-- discontınua 
-. punto-raya 
: punteada 
y amarillo 
g verde 
m magenta 
b azul 
c cyan 
w blanco 
r rojo 
k negro 
 
 
 
Ejemplos: 
 
>> x=-pi:0.05:pi; 
>> plot(x, sin(x).*cos(x),'o'); 
 
 
n=50; %Asignamos valores a las variables 
a=0; 
b=3; 
x=linspace(a,b,n); %Construimos el vector x 
e1=exp(-x.^2); %y los vectores de abcisas 
e2=(x.^2).*exp(-x.^2); 
Guía de MATLAB – Para principiantes 
 
14 
 
e3=x.*exp(-x.^2); 
e4=exp(-x); 
plot(x,e1,'+',x,e2,'*',x,e3,'o',x,e4,'x'); %Dibujamos 
las graficas 
 
 
Además podemos colocar etiquetas o manipular la gráfica: 
 
>> xlabel('texto') %etiqueta sobre el eje X de la 
gráfica actual 
>> ylabel('texto') %etiqueta sobre el eje Y de la 
gráfica actual 
>> title('texto') %título en la cabecera de la 
gráfica actual 
>> text(x,y, 'texto') %texto en el lugar especificado 
por las coordenadas 
>> gtext('texto') %texto, el lugar lo indicamos 
después con el ratón 
>> grid %dibujar una rejilla 
>> axis( [xmin xmax ymin ymax] ) %fija valores 
máximo y mínimo de los ejes 
>> axis equal %fija que la escala en los ejes sea 
igual 
>> axis square %fija que la gráfica sea un cuadrado 
>> axis normal %desactiva axis equal y axis square 
>> hold on %abre una ventana de gráfico 
>> hold off %borra lo que hay en la ventana de 
gráfico 
Guía de MATLAB – Para principiantes 
 
15 
 
También podemos cambiar a apariencia de la gráfica con el último botón de 
la barra de herramientas y se abrirán unos cuadros enlos laterales que nos 
permitirán ir haciendo los cambios deseados como darle nombre a los ejes. 
 
 
 
 
2.2. El comando subplot 
 
Una ventana gráfica se puede dividir en m particiones horizontales y en n 
verticales, de modo que cada subventana tiene sus propios ejes, y para hacer 
esto vamos a usar subplot (m,n,p) donde p indica la subdivisión que se 
convierte en activa. 
 
Ejemplo: 
 
>> x = 1:360; y1 = sind (x); y2 = cosd(x); y3 = exp (x); 
y4 = exp (-x); 
>> subplot (2,2,1), plot(x,y1), title ('seno') 
>> subplot (2,2,2), plot(x,y2), title ('coseno') 
>> subplot (2,2,3), plot (x,y3), title ('exponencial') 
>> subplot (2,2,4), plot (x,y4), title ('-exponencial') 
Guía de MATLAB – Para principiantes 
 
16 
 
 
Para volver al modo por defecto basta escribir: 
 
>> subplot (1,1,1) 
 
2.3. Otras gráficas 
 
Comando pie (Diagrama de sectores) 
Resultan útiles para representar datos de tipo cualitativo, en los que tenemos 
varias opciones, el diagrama de sectores permite compararlas en un circulo 
con sectores cuyo ángulo es directamente proporcional al porcentaje de cada 
opción. 
 
Ejemplo: Los resultados de las elecciones generales del 10 de abril del 2016 
al Congreso fueron los siguientes: 
 
 
Guía de MATLAB – Para principiantes 
 
17 
 
Partido político Número de Congresistas 
Fuerza Popular 73 
Peruanos por el Kambio 18 
El Frente Amplio 20 
APP 9 
Alianza Popular 5 
Acción Popular 5 
Total 130 
 
Para dibujar un diagrama de sectores de los resultados de las elecciones, 
procedemos como sigue. Introducimos los datos en un vector 
>> x=[73 18 20 9 5 5]; 
>> pie3(x) 
>> legend('FP','PPK','FA','APP','Alianza P.','Acción P.') 
 
Con el comando pie3 se obtiene también un diagrama de sectores, pero en 
versión tridimensional. 
Ejemplo: 
>> pie3(x, [1 1 1 0 0 0]) 
>> legend('FP','PPK','FA','APP','Alianza P.','Acción P.') 
 
Guía de MATLAB – Para principiantes 
 
18 
 
 
Tanto para el comando pie, como para el comando pie3 existe la posibilidad 
de separar uno o más sectores para destacarlos con respecto de los demás. 
Ejemplo: 
>> pie(x, [1 1 1 0 0 0]) 
>> legend('FP','PPK','FA','APP','Alianza P.','Acción P.') 
 
 
 
 
 
 
 
 
Guía de MATLAB – Para principiantes 
 
19 
 
Comando bar y barh (Diagrama de barras) 
Existen varias posibilidades para representar diagramas de barras. 
Ejemplo: 
Supongamos que queremos representar los siguientes datos en un diagrama 
de barras: 
 
>>x=[10 2 3 5 18 20 15 ]; 
 
Y ahora usamos los comandos bar, barh, para generar los gráficos. (Usando 
el comando subplot podemos conseguir que aparezcan todos en la misma 
figura.) 
 
>> subplot(1,2,1),bar(x),title('Barras Verticales') 
>> subplot(1,2,2),barh(x),title('Barras Horizontales') 
 
 
Con los comandos bar3 y bar3h se obtienen sus respectivas versiones 
tridimensionales. 
 
>> subplot(1,2,1),bar3(x),title('Barras Verticales 3D') 
>> subplot(1,2,2),bar3h(x),title('Barras Horizontales 
3D') 
 
Guía de MATLAB – Para principiantes 
 
20 
 
 
 
Comando area 
Similar al comando plot, salvo que rellena las ordenadas de 0 a y. 
 
Ejemplo: 
 
>> x=[1989:2018]; 
y=rand(1,30)*1000; 
area(x,y); 
axis([1989 2018 0 1000]) 
 
Guía de MATLAB – Para principiantes 
 
21 
 
Comando stairs 
Función análoga a bar sin líneas internas. 
 
Ejemplo: 
 
>> x=[1989:2018]; 
y=rand(1,30)*1000; 
stairs(x,y); 
axis([1989 2018 0 1000]) 
 
 
 
Comando stem 
Representa una gráfica de tallos 
 
Ejemplo: 
 
>> x=[1989:2018]; 
y=rand(1,30)*1000; 
stem(x,y); 
axis([1989 2018 0 1000]) 
Guía de MATLAB – Para principiantes 
 
22 
 
 
 
Comando errorbar 
Representa sobre una gráfica –mediante barras– valores de errores 
 
Ejemplo: 
 
>> x=[1989:2018]; 
y=rand(1,30)*1000; 
errorbar(x,y); 
axis([0 31 1000 3000]) 
 
Guía de MATLAB – Para principiantes 
 
23 
 
Comando compass 
Dibuja los elementos de un vector complejo como un conjunto de vectores 
partiendo de un origen común 
 
Ejemplo: 
 
>> Z=[2+3i,3-2i,5.6+4i]; 
compass(Z); 
 
 
 
 
Comando feather 
Dibuja los elementos de un vector complejo como un conjunto de vectores 
partiendo de orígenes uniformemente espaciados sobre el eje de abscisas 
 
Ejemplo: 
 
>> Z=[2+3i,3-2i,5.6+4i]; 
feather(Z); 
Guía de MATLAB – Para principiantes 
 
24 
 
 
Comando comet 
Crea un gráfico animado en el que un círculo (cometa) recorre los puntos de 
datos en la pantalla. 
 
Ejemplo: 
 
>> t = 0:.01:2*pi; 
x = cos(2*t).*(cos(t).^2); 
y = sin(2*t).*(sin(t).^2); 
comet(x,y); 
 
Guía de MATLAB – Para principiantes 
 
25 
 
3. OPERACIONES MATEMÁTICAS 
 
3.1. Aritmética elemental 
 
Comenzaremos viendo con varios ejemplos que las operaciones aritméticas 
habituales se realizan del modo esperado con los operadores. 
 
Suma: + 
Resta: - 
Multiplicación: * 
División: / 
Potencia: ^ 
 
Ejemplos: 
 
>> 1+2 %Suma de dos enteros. 
ans = 
3 
>> 2.45*3.1415 %Producto de números reales. 
ans = 
7.6967 
>> (3+2^3*i)+(-1+5*i) %Suma de complejos. 
ans = 
2.0000+13.0000i 
 
Si no queremos que aparezca por pantalla el resultado de una operación 
tendremos que poner al final de la línea punto y coma ”;”. 
 
Vectores y Matrices 
Comencemos con algunos ejemplos elementales de asignaciones y alguna 
de las operaciones que se pueden realizar. 
 
>> a=2 %Asignación del valor 2 a la variable 
a. 
a= 
2 
>> b=1:1:10 %Asignamos a b el vector de datos 
[1,2,3,...,10] 
b= 
1 2 3 4 5 6 7 8 9 10 
 
Guía de MATLAB – Para principiantes 
 
26 
 
>> a+b %Sumamos un escalar y un vector. 
 
ans= 
3 4 5 6 7 8 9 10 11 12 
>> a*b %Producto de un vector y un escalar. 
ans= 
2 4 6 8 10 12 14 16 18 20 
 
 
Si sumamos vectores de tamaño diferente tenemos lo siguiente. 
 
>> c=1:5:25 %Declaramos el vector c. 
c= 
1 6 11 16 21 
>> b+c %Sumamos los vectores b y c. 
??? Error using ==> + 
Matrix dimensions must be agree 
 
Podemos multiplicar vectores, bien como producto escalar de ellos o bien 
componente a componente. 
 
>> b=0:2:20 %Declaramos el vector b. 
b= 
0 2 4 6 8 10 12 14 16 18 20 
>> c=0:1:10 %Declaramos el vector c. 
c= 
0 1 2 3 4 5 6 7 8 9 10 
>> b.*c % Producto de dos vectores componente 
a componente. 
ans= 
0 2 8 18 ...200 
>> b’*c %Matriz resultado de multiplicar b 
traspuesto por c (ver pantalla) 
>> b*c’ %Producto de b por c traspuesto 
(producto interior) 
ans= 
770 
 
No sólo se pueden sumar vectores o multiplicar por una constante si no que 
se puede calcular el logaritmo de un vector o el seno de un vector, etc. 
obteniendo el logaritmo o el seno de cada una de sus componentes. 
 
>> b=1:10; %Declaramos el vector b. 
Guía de MATLAB – Para principiantes 
 
27 
 
>> log(b) %Logartimo del vector b. 
ans= 
Columns 1 through 7 
0 0.6931 ...1.9459 
Columns 8 through 10 
2.0794 2.1972 2.3026 
>> sin(b) %Seno del vector b. 
ans= 
Columns 1 through 7 
0.8415 0.9093 ...0.6570 
Columns 8 through 10 
0.98954 0.4121 -0.5440 
 
>> c=1:1:5 
c= 
1 2 3 4 5 
>> 2.^c %2 elevado a las potencias que 
determina c. 
ans= 
2 4 8 16 32 
>> c.^ 2 %Las componentes de c elevadas 
al cuadrado. 
ans= 
1 4 9 16 25 
 
Un punto delante de los operadores .*, .^ y ./ indica que las operaciones se 
realizan componente a componente en los vectores o las matrices. 
 
3.2. Funciones matemáticas comunes 
 
APROXIMACIONES 
Función ¿Qué hace? Ejemplo 
x = 5.92 
ceil (x) redondea hacia infinito 6 
fix (x) redondea hacia cero 5 
floor (x) redondea hacia menos 
infinito 
5 
round (x) redondea hacia el entero más 
próximo 
6 
 
 
 
Guía de MATLAB – Para principiantes 
 
28 
 
Ejemplos: 
 
>> x=ceil(pi) 
x = 
 4 
>> round ( [19.54646 13.656 -2.1565 0.78] ) 
ans = 
20 14 -2 1 
>> x = round(pi,3) %Aproxima a 3 cifras decimales 
X = 
 3.1420 
 
TRIGONOMETRÍA 
 
Función Qué hace? 
... (x)función trigonométrica con el ángulo expresado en radianes 
sin (x) 
cos (x) 
tan (x) 
csc (x) 
sec (x) 
cot (x) 
seno (radianes) 
coseno 
tangente 
cosecante 
secante 
cotangente 
...d (x) función trigonométrica con el ángulo expresado en grados 
 
sind (x) 
... 
seno (grados) 
... 
...h (x) función trigonométrica hiperbólica con el ángulo expresado 
en radianes 
sinh (x) 
... 
seno hiperbólico (radianes) 
... 
a... (x) inversa de la función trigonométrica con el resultado 
expresado en radianes 
asin (x) 
... 
arco seno (radianes) 
... 
a...d (x) inversa de la función trigonométrica con el resultado 
expresado en grados 
asind (x) 
... 
arco seno (grados) 
... 
a...h (x) inversa de la función trigonométrica hiperbólica con el 
resultado expresado en radianes 
asinh (x) 
... 
arco seno hiperbólico (radianes) 
... 
Guía de MATLAB – Para principiantes 
 
29 
 
Ejemplos: 
 
>> sin(pi/2) %Seno de pi/2 radianes 
ans = 
1 
 
>> sind(-90) %Seno de 90 grados centesimales 
ans = 
-1 
 
>> cosd(60) %Coseno de 60 grados 
centesimales 
ans = 
0.5000 
 
>> asind(1) %Arcoseno de 1 en grados 
centesimales 
ans = 
90 
 
OTRAS FUNCIONES 
 
Función Que hace? 
abs (x) valor absoluto o magnitud de un número complejo 
sign (x) signo del argumento si x es un valor real (-1 si es 
negativo, 0 si es cero, 1 si es positivo) 
exp (x) exponencial 
gcd (m,n) máximo común divisor 
lcm (m,n) mínimo común múltiplo 
log (x) logaritmo neperiano o natural 
log2 (x) logaritmo en base 2 
log10 (x) logaritmo decimal 
mod(x,y) módulo después de la división 
rem (x,y) resto de la división entera 
sqrt (x) raíz cuadrada 
nthroot (x,n) raíz n-ésima de x 
(x e y cualquier escalar, m y n enteros) 
 
 
 
 
 
Guía de MATLAB – Para principiantes 
 
30 
 
Ejemplos: 
 
>> abs (-7) % valor absoluto de -7 
ans = 
7 
>> sign (10) % signo del número 10 
ans = 
1 
>> gcd (9,12) % máximo común divisor entre 9 y 12 
ans = 
3 
>> lcm (10,25) % mínimo común múltiplo 
ans = 
50 
>> mod (-12,5) % módulo de la división de -12/5 
ans = 
3 
 
>> rem (12,5) % resto de la división de 12/5 
ans = 
2 
>> nthroot (8,3) % raíz cúbica de 8 
ans = 
2 
 
3.3. Ecuaciones 
 
El comando solve, resuelve una ecuación o un sistema de ecuaciones. Por 
ejemplo, para calcular las raíces de la ecuación 
 
𝑥2 +
𝑥
6
−
1
3
= 0 
 
>> syms x; %Declaramos variable simbólica 
>> solve(x^2+x/6-1/3) 
ans = 
 1/2 
 -2/3 
Vamos a resolver la conocida ecuación de segundo grado 
 
𝑎𝑥2 + 𝑏𝑥 + 𝑐 = 0 
Guía de MATLAB – Para principiantes 
 
31 
 
𝑥1,2 =
−𝑏 ± √𝑏2 − 4𝑎𝑐
2𝑎
 
 
>> syms a b c x; %Declaramos variables simbólicas 
>> eq=a*x^2+b*x+c; 
>> solve(eq,x) %Resolvemos respecto a la 
variable simbólica x 
ans = 
 -(b + (b^2 - 4*a*c)^(1/2))/(2*a) 
 -(b - (b^2 - 4*a*c)^(1/2))/(2*a) 
 
Resolver el sistema de dos ecuaciones con dos incógnitas 
 
{
3𝑥 + 2𝑦 = −1
𝑥 − 𝑦 = 2
 
 
>> syms x y; %Declaramos variables simbólicas 
>> eq1=3*x+2*y+1; 
>> eq2=x-y-2; 
>> [x1 y1]=solve(eq1,eq2,x,y) 
x1 = 
3/5 
y1 = 
-7/5 
 
3.4. Sistema de ecuaciones lineales 
 
Un sistema de ecuaciones lineales, también conocido como sistema lineal de 
ecuaciones o simplemente sistema lineal, es un conjunto de ecuaciones 
lineales (es decir, un sistema de ecuaciones en donde cada ecuación es de 
primer grado). 
Se presentan tres maneras de resolver sistemas de ecuaciones con 
MATLAB: 
• Método de la matriz inversa (sistema de ecuaciones lineales). 
• Método de la división matricial izquierda (sistema de ecuaciones 
lineales). 
• Utilizando el comando rref (sistema de ecuaciones lineales). 
• Utilizando el comando solve (sistema de ecuaciones lineales y no 
lineales). 
 
 
 
Guía de MATLAB – Para principiantes 
 
32 
 
Ejemplos: 
 
2𝑥 + 4𝑦 + 6𝑧 = 18 
4𝑥 + 5𝑦 + 6𝑧 = 24 
3𝑥 + 𝑦 − 2𝑧 = 4 
 
>> A = [2,4,6;4,5,6;3,1,-2]; 
>> B = [18;24;4]; 
>> C = det(A) 
 
C = 
 6 % Determinante distinto de 0, solución única 
>> sol1 = inv(A)*B % Método de la matriz inversa 
sol1 = 
 4.0000 
 -2.0000 
 3.0000 
 
>> sol2=A\B % Método de la división matricial izquierda 
sol2 = 
 4.0000 
 -2.0000 
 3.0000 
 
>> AB=[A B] % Escribimos la matriz ampliada 
>> rref(ab) % Eliminación Gauss-Jordan 
 
ans = 
 1 0 0 4 
 0 1 0 -2 
 0 0 1 3 
 
>> syms a b c %Declaramos variables simbólicas 
>> a1=2*a+4*b+6*c==18; 
>> a2=4*a+5*b+6*c==24; 
>> a3=3*a+b-2*c==4; 
>> [x1,y1,z1]=solve(a1,a2,a3) %Mediante comando solve 
x1 = 
4 
y1 = 
-2 
z1 = 
3 
Guía de MATLAB – Para principiantes 
 
33 
 
3.5. Series 
 
La función symsum(f,a,b) suma la expresión f a medida que la variable 
simbólica varía de a a b 
 
𝑠 = ∑ 𝑘2 = 12 + 22 + 32 + 42 + 52 = 55
5
𝑘=1
 
>> syms k; %Declaramos variable simbólica 
>> symsum(k^2,1,5) %Sumatoria de 1 a 5 
ans = 
 55 
 
∑ 𝑘 =
𝑁(𝑁 + 1)
2
𝑁
𝑘=0
 
>> syms k N; %Declaramos variables simbólicas 
>> symsum(k,0,N) %Sumatoria de 0 a N 
ans = 
 (N*(N + 1))/2 
 
∑ 𝑘2 =
𝑁(𝑁 + 1)(2𝑁 + 1)
6
𝑁
𝑘=0
 
>> syms k N; %Declaramos variables simbólicas 
>> symsum(k^2,0,N) %Sumatoria de 0 a N 
ans = 
 (N*(2*N + 1)*(N + 1))/6 
 
∑
𝑥𝑘
𝑘!
= 𝑒𝑥
∞
𝑘=0
 
>> syms x k %Declaramos variables simbólicas 
>> symsum(x^k/sym('k!'),k,0,inf) %Sumatoria de k desde 0 
a inf 
ans = 
 exp(x) 
 
Dado que hay dos variables simbólicas x y k, especificamos en el segundo 
parámetro de la función sysmsum que la suma se refiere a k 
 
 
 
Guía de MATLAB – Para principiantes 
 
34 
 
3.6. Límites 
lim
𝑥→1
(
𝑥2 + 2𝑥 − 1
𝑥2 + 1
) = 1 
 
>> syms x a; %Declaramos variables simbólicas 
>> y=(x^2+2*x-1)/(x^2+1); 
>> limit(y,x,1) %Calculamos limite cuando x 
tiende a 1 
ans = 
 1 
 
lim
x→∞
(1 +
a
x
)
x
 
 
inf representa en MATLAB el infinito 
 
>> syms x a; 
>> limit((1+a/x)^x,x,inf) %Calculamos limite 
cuando x tiende a infinito 
ans = 
 exp(a) 
 
lim
x→0
(cos(2x))
3/x2
 
>> syms x; 
>> y=cos(2*x)^(3/x^2); 
>> limit(y,x,0) 
ans = 
 1/exp(6) 
 
La derivada de una función f(x) es el límite 
 
 
𝑓′(𝑥) = lim
ℎ→0
𝑓(𝑥 + ℎ) − 𝑓(𝑥)
ℎ
 
 
La derivada de y=sin(x) es y'=cos(x) 
>> syms x h; 
>> limit((sin(x+h)-sin(x))/h,h,0) 
ans = 
 cos(x) 
 
Guía de MATLAB – Para principiantes 
 
35 
 
De forma alternativa, podemos calcular las derivadas definiendo la función 
f(x) como función anónima y aplicando la definición de derivada. 
 
>> syms x h; 
>> f=@(x) sin(x) %función anónima 
>> limit((f(x+h)-f(x))/h,h,0) 
ans = 
 cos(x) 
 
3.7. Derivada de una función 
 
La función diff calcula la derivada de una función respecto a una variable x. 
Por defecto, calcula la derivada primera, pero también puede calcular la 
derivada segunda, tercera, etc., indicándoselo en su segundo argumento. 
 
>> syms x; 
>> y=(sin(x))^2; 
>> yp=diff(y) %derivada con respecto a x 
yp =2*cos(x)*sin(x) 
>> ypp=diff(yp) %derivada de la derivada 
ypp = 
 2*cos(x)^2 - 2*sin(x)^2 
>> diff(y,2) %segunda 
derivada (derivada de la derivada) 
ans = 
 2*cos(x)^2 - 2*sin(x)^2 
 
Derivadas parciales (respecto de una variable) 
 
>> syms x y; 
>> diff(x*sin(x*y),x) %derivada con respecto a x 
ans = 
 sin(x*y) + x*y*cos(x*y) 
>> diff(x*sin(x*y),y) %derivada con respecto a y 
ans = 
 x^2*cos(x*y) 
 
3.8. Integral de una función 
 
El comando int(f,x,a,b) calcula la integral de la expresión f, respecto de la 
variable x, en el intervalo [a,b] donde a y b pueden ser cantidades numéricas 
o variables simbólicas. 
Guía de MATLAB – Para principiantes 
 
36 
 
Integrales indefinidas 
Si no ponemos límites a la integral, obtenemos la integral indefinida, la 
función cuya derivada es el integrando 
 
∫ 𝒔𝒊𝒏𝟐(𝒙)𝒅𝒙 = ∫
𝟏 − 𝒄𝒐𝒔(𝟐𝒙)
𝟐
𝒅𝒙 =
𝟏
𝟐
𝒙 −
𝒔𝒊𝒏(𝟐𝒙)
𝟒
+ 𝒄 
 
>> syms x; %Declaramos variablesimbólica 
>> y=sin(x)^2; 
>> z=int(y) 
z = 
 x/2 - sin(2*x)/4 
>> y=diff(z) 
y = 
 1/2 - cos(2*x)/2 
>> simplify(y) 
ans = 
 sin(x)^2 
 
Calculamos la derivada con diff, simplificamos la expresión obtenida con 
simplify y obtenemos el integrando. 
 
Integales definidas 
Para calcular la integral 
 
∫ 𝑠𝑖𝑛2(𝑥)𝑑𝑥
𝜋
0
= ∫
1 − 𝑐𝑜𝑠(2𝑥)
2
𝑑𝑥 =
1
2
𝜋
0
𝑥 −
𝑠𝑖𝑛(2𝑥)
4
|
0
𝜋
=
𝜋
2
 
 
>> syms x; %Declaramos variable simbólica 
>> y=sin(x)^2; 
>> int(y,0,pi) 
ans = 
 pi/2 
 
En este ejemplo, 
∫ 𝑒𝑥𝑝(−𝑎𝑥2)𝑑𝑥
+∞
−∞
 
 
>> syms x a; %Declaramos variables simbólicas 
>> y=exp(-a*x^2); 
>> int(y,x,-inf,inf) 
Guía de MATLAB – Para principiantes 
 
37 
 
ans = 
 
piecewise([a < 0, Inf], [0 <= real(a) | angle(a) in 
Dom::Interval([-pi/2], [pi/2]) & a ~= 0, 
pi^(1/2)/a^(1/2)], [real(a) < 0 & ~angle(a) in 
Dom::Interval([-pi/2], [pi/2]) & ~a < 0, int(exp(-x^2*a), 
x, -Inf, Inf)]) 
 
Nos devuelve una expresión condicional cuya sintaxis es la siguiente: 
pw = piecewise(cond1,val1,cond2,val2,...) cuyo valor es val1 cuando la 
condición cond1 es cierto, es val2 cuando cond2 es cierto, y así 
sucesivamente. 
pw = piecewise(cond1,val1,cond2,val2,...,otherwiseVal) otherwiseVal si 
ninguna condición es verdadera. 
 
Si declaramos el parámetro a positivo entonces: 
 
>> clear 
>> syms x; %Declaramos variable simbólica 
>> syms a positive; %Declaramos variable positiva
 
>> y=exp(-a*x^2); 
>> int(y,x,-inf,inf) 
ans = 
 pi^(1/2)/a^(1/2) 
 
3.9. Ecuaciones diferenciales 
 
Resolución exacta de ecuaciones diferenciales ordinarias 
Para resolver de forma exacta una o varias ecuaciones diferenciales, 
MATLAB dispone de la orden dsolve. Por defecto, la variable independiente 
es t, pero se puede usar cualquier otra variable si se incluye como último 
argumento: 
 
dsolve(‘ec1’, …,’ecn’) resuelve el sistema diferencial de 
ecuaciones y condiciones iniciales (ec1, 
…., ecn) 
dsolve(‘ec1’,…,’ecn’,’var’) resuelve el sistema diferencial de 
ecuaciones y condiciones iniciales (ec1, 
…., ecn) y usa var como variable 
independiente 
Guía de MATLAB – Para principiantes 
 
38 
 
La letra D se utiliza para representar la derivación con respecto a la variable 
independiente, es decir, u’ se escribe Du; las derivadas orden superior u’’, 
u’’’,… se escriben D2u, D3u,… 
 
Ejemplo: 
𝑢′ =
1
2
𝑢, 𝑢(0) =
1
4
 
 
>> u = dsolve('Du= u/2','u(0)= 1/4') 
u = 
exp(t/2)/4 
 
Es posible obtener la solución general de una ecuación diferencial: 
 
>> u = dsolve('Du=u/2') 
u = 
C2*exp(t/2) 
 
Esto significa que la solución de la ecuación diferencial 𝑢′ = 𝑢/2 es. 
 
𝑢(𝑡) = 𝐶1𝑒
𝑡 2⁄ , (𝐶1 ∈ 𝑅) 
𝑢′ = 2𝑡 + 𝑢, 𝑢(1) = 0.5 
 
>> u = dsolve('Du= 2*t+u','u(1)= 0.5') 
u = 
(9*exp(-1)*exp(t))/2 - 2*t – 2 
 
El operador simbólico dsolve no siempre puede encontrar una solución de 
forma cerrada (algo probable puesto que sólo clases particulares de EDOs 
pueden ser resueltas en forma simbólica cerrada). 
Y cuando no podemos resolver la EDO de manera simbólica, debemos 
cambiar a un solucionador numérico. 
 
Comando ode45 
Su sintaxis es la siguiente 
[t,x]=ode45(odefun,tspan,x0, options, params) 
 
• x es una matriz donde cada columna corresponde a las variables 
dependientes y t es el vector tiempo. 
• odefun es el nombre de la función, 
• tspan especifica el intervalo de tiempo, un vector de dos números 
tspan=[ti,tf], tiempo inicial y final. Para obtener valores de las 
Guía de MATLAB – Para principiantes 
 
39 
 
variables dependientes en instantes concretos t0, t1, t2, ... tn. se 
escribe tspan=[t0,t1....tn]; 
• x0 es un vector que contiene los valores iniciales. 
• options es una estructura que se crea con la función odeset. 
• params son parámetros que queremos pasar a la función odefun 
 
 
Ejemplo: 
Para el intervalo de [0,5], calcular: 
𝑢′ = 2𝑡 𝑢(0) = 0 
 
>> tspan = [0 5]; %Definimos los limites 
>> u0 = 0; %Valor de u con t=0 
>> [t,u] = ode45(@(t,u) 2*t, tspan, u0); 
>> plot(t,u,'-o') %Graficamos el resultado 
 
 
 
Sistema de ecuaciones diferenciales de primer orden 
 
Ejemplo: 
Resolver el sistema de ecuaciones diferenciales: 
𝑑𝑥
𝑑𝑡
= −𝑎𝑥 
𝑑𝑦
𝑑𝑧𝑡
= 𝑎𝑥 − 𝑏𝑦 
Guía de MATLAB – Para principiantes 
 
40 
 
a=0.5; 
b=0.7; 
%condiciones iniciales en el vector x0 
x0=zeros(1,2); 
x0(1)=0; 
x0(2)=1; 
tf=5 %tiempo final 
tspan=[0 tf]; 
fg=@(t,x) [-a*x(1);a*x(1)-b*x(2)]; 
[t,x]=ode45(fg,tspan,x0); 
plot(t,x,'-o') 
 
 
Ejemplo: 
 
Resolver el sistema de ecuaciones diferenciales: 
𝑑𝑦
𝑑𝑧
= −0.2(1 − 0.23𝑥)/𝑦 
𝑑𝑥
𝑑𝑧
= 1.5(1 − 𝑥)𝑦/(1 − 0.2𝑥) 
Para valores de: 
𝑥(0) = 0 , 𝑦(0) = 1.0 , 𝑧(0) = 0 , 𝑧(𝑓) = 3.0 
Podemos obtener el resultado de manera directa con el comando ode45: 
 
>> x0=zeros(1,2); 
>> x0(1)=0; 
Guía de MATLAB – Para principiantes 
 
41 
 
>> x0(2)=1; 
>> tspan=[0,3]; 
>> fg=@(t,x) [1.5*(1-x(1))*x(2)/(1-0.2*x(1));-0.2*(1-
0.23*x(1))/x(2)]; 
>> [t,x]=ode45(fg,tspan,x0); 
>> plot(t,x,'-o') 
 
 
 
 
 
 
 
 
Guía de MATLAB – Para principiantes 
 
42 
 
4. OPERACIONES CON POLINOMIOS 
 
4.1. Polinomios 
 
Un polinomio de grado n de coeficientes a1,a2...,an,an+1 es la expresión 
𝑎1𝑥
𝑛 + 𝑎2𝑥
𝑛−1 + ⋯ + 𝑎𝑛𝑥 + 𝑎𝑛+1 
 
en MATLAB se representa por el vector fila p=[a1,a2...,an,an+1] 
El polinomio p = x3 − 2x2 + x − 2 se representa por el vector p=[1 -2 1 -2] 
Los polinomios se pueden representar de forma simbólica mediante la 
función poly2sym. 
 
>> p=[1 -2 1 -2]; %Vector formado por sus 
coeficientes 
>> poly2sym(p) 
ans = 
 x^3 - 2*x^2 + x - 2 
 
A su vez un polinomio en forma simbólica se puede convertir en el vector 
formado por sus coeficientes mediante sym2poly 
 
>> syms x; 
>> sym2poly(x^3-2*x-4) %Polinomio en forma simbólica 
ans = 
 1 0 -2 -4 
 
4.2. Valor de un polinomio 
 
Calculamos el valor de polinomio cuando se conoce el valor la variable x. 
Sea 𝑝 = 𝑥5 − 3.5𝑥4 + 2.75𝑥3 + 2.125𝑥2 − 3.875𝑥 + 1.25 
Cuando se expresa un polinomio de forma simbólica se utiliza la función subs 
 
>> syms x; 
>> p=x^5-3.5*x^4+2.75*x^3+2.125*x^2-3.875*x+1.25; 
>> subs(p,x,1.5) %Valor de x de 1.5 
ans = 
 -0.6250 
 
La función polyval nos proporciona este valor cuando se expresa el polinomio 
en forma de vector formado por los coeficientes. 
 
Guía de MATLAB – Para principiantes 
 
43 
 
>> p=[1 -3.5 2.75 2.125 -3.875 1.25]; 
>> x=1.5; %Valor de x de 1.5 
>> polyval(p,x) 
ans = 
 -0.6250 
>> x=0:0.5:2; %Valor de x de 0 a 2 con un paso 
de 0.5 
>> polyval(p,x) 
ans = 
 1.2500 0 -0.2500 -0.6250 0 
 
4.3. Ajuste a un polinomio 
 
La función polyfit devuelve los coeficientes para un polinomio de grado n, que 
es el mejor ajuste para una serie de datos ingresados. Los coeficientes están 
en potencias descendentes y la longitud es n+1. 
 
>> p = polyfit(x, y, n) 
 
Ejemplo: 
 
>> x = linspace (0,4 * pi, 10); %Genera un vector de 10 
valores desde 0 hasta 4pi 
>> y = sin (x); 
>> p = polyfit (x, y, 7); 
>> x1 = linspace(0,4*pi); %Genera un vector de 100 
valores desde 0 hasta 4pi 
>> y1 = polyval(p,x1); %Evalúa y1 en función de 
los valores de x1 
>> figure 
>> plot(x,y, 'o' ) 
>> hold on 
>> plot(x1,y1) 
>> hold off 
 
Guía de MATLAB – Para principiantes 
 
44 
 
 
 
4.4. Suma de polinomios 
 
Queremos sumar los polinomios p1=x3-2x-4 y p2=x2+3x+4 
De forma simbólica 
 
>> syms x; 
>> p1=x^3-2*x-4; 
>> p2=x^2+3*x+4; 
>> p1+p2 
ans = 
 x^3 + x^2 + x 
 
Para sumar dos polinomios en forma de vectores, los vectores tiene que 
tener las mismas dimensiones 
 
>> p1=[1 0 -2 -4]; 
>> p2=[2 3 4]; 
>> p1+p2 
??? Error using ==> plus 
Matrix dimensions must agree. 
>> p2=[0 2 3 4]; 
>> p1+p2 
ans = 
 1 2 1 0 
 
Guía de MATLAB – Para principiantes 
 
45 
 
4.5. Producto de dos polinomios 
 
Queremos multiplicar los polinomiosp1=x3-2x-4 y p2=x2+3x+4 
De forma simbólica 
 
>> syms x; 
>> p1=x^3-2*x-4; 
>> p2=x^2+3*x+4; 
>> p=p1*p2 
p = 
 -(x^2 + 3*x + 4)*(- x^3 + 2*x + 4) 
>> expand(p) 
ans = 
 x^5 + 3*x^4 + 2*x^3 - 10*x^2 - 20*x - 16 
 
Producto de dos polinomios mediante la función conv 
 
>> p1=[1 0 -2 -4]; 
>> p2=[1 3 4]; 
>> p=conv(p1,p2) 
p = 
 1 3 2 -10 -20 -16 
 
4.6. Cociente 
𝑥3 + 5𝑥2 + 11𝑥 + 13
𝑥2 + 2𝑥 + 4
= (𝑥 + 3) +
𝑥 + 1
𝑥2 + 2𝑥 + 4
 
De forma simbólica 
 
>> syms x; 
>> p1=x^3+5*x^2+11*x+13; 
>> p2=x^2+2*x+4; 
>> p=p1/p2 
p = 
 (x^3 + 5*x^2 + 11*x + 13)/(x^2 + 2*x + 4) 
>> simplify(p) 
ans = 
 x + (x + 1)/(x^2 + 2*x + 4) + 3 
 
La función deconv nos proporciona el cociente y el resto de la división entre 
dos polinomios. 
 
>> p1=[1 5 11 13]; 
Guía de MATLAB – Para principiantes 
 
46 
 
>> p2=[1 2 4]; 
>> [q r]=deconv(p1,p2) 
q = 1 3 %Coeficientes del polinomio x+3 
r = 0 0 1 1 %Coeficientes 
del resto x+1 
 
4.7. Derivada 
 
La regla de derivación de cada término de un polinomio es 
𝑑
𝑑𝑥
𝑎𝑥𝑛 = 𝑛𝑎𝑛−1 
 
Mediante la función diff(p,n) calculamos la derivada n del polinomio p de 
forma simbólica 
 
>> syms x; 
>> p=x^3+4*x^2-3*x-2; 
>> diff(p) %Primera derivada del polinomio 
p 
ans = 
 3*x^2 + 8*x - 3 
>> diff(p,2) %Segunda derivada del polinomio 
p 
ans = 
 6*x + 8 
 
La función polyder calcula la derivada de un polinomio expresado en forma 
de vector formado por los coeficientes. 
 
>> p=[1 4 -3 -2]; 
>> polyder(p) 
ans = 
 3 8 -3 
 
4.8. Integral 
 
La integral de cada uno de los términos del polinomio se calcula mediante la 
fórmula 
 
∫ 𝑎𝑥𝑛𝑑𝑥 = 𝑎
𝑥𝑛+1
𝑛 + 1
 
Guía de MATLAB – Para principiantes 
 
47 
 
La función int calcula la integral de forma analítica, suponiendo que la 
constante de integración vale 0 
 
>> syms x; %Declaramos variable simbólica 
>> p=4*x^3+4*x^2-2*x-2; 
>> int(p) 
ans = 
 x^4 + (4*x^3)/3 - x^2 - 2*x 
 
La función polyint calcula la integral cuando se expresa un polinomio como 
vector formado por los coeficientes 
 
>> p=[4 4 -2 2]; 
>> polyint(p) 
ans = 
 1.0000 1.3333 -1.0000 2.0000 0 
 
4.9. Raíces de un polinomios 
 
Cuando se expresa un polinomio de forma simbólica se utiliza la función 
solve 
 
>> syms x; %Declaramos variable simbólica 
>> p=x^5-3.5*x^4+2.75*x^3+2.125*x^2-3.875*x+1.25; 
>> solve(p) 
ans = 
 2 
 -1 
 1/2 
 i/2 + 1 
 1 - i/2 
 
Cuando se expresa un polinomio como vector formado por los coeficientes, 
se emplea la función roots. 
 
>> p=[1 -3.5 2.75 2.125 -3.875 1.25]; 
>> roots(p) 
ans = 
 2.0000 
 -1.0000 
 1.0000 + 0.5000i 
 1.0000 - 0.5000i 
Guía de MATLAB – Para principiantes 
 
48 
 
 0.5000 
 
Conocidas las raíces del polinomio podemos calcular el vector que guarda los 
coeficientes mediante poly 
 
>> r=[2 -1 1+0.5i 1-0.5i 0.5]; %raíces del polinomio 
>> poly(r) 
ans = 1.0000 -3.5000 2.7500 2.1250 -3.8750 
1.2500 
 
Obtenemos el polinomio p a partir de sus raíces 
 
4.10. Factorización 
 
La función factor convierte un polinomio expresado en forma simbólica en 
factores 
 
>> syms x; %Declaramos variable 
simbólica 
>> p=x^3-6*x^2+11*x-6; 
>> factor(p) 
ans = 
 (x - 3)*(x - 1)*(x - 2) 
 
4.11. Expansión 
 
La función expand realiza operaciones con polinomios, por ejemplo, devuelve 
el polinomio p a partir de sus factores 
 
>> syms x; %Declaramos variable 
simbólica 
>> p=(x - 3)*(x - 1)*(x - 2); 
>> expand(p) 
ans = 
 x^3 - 6*x^2 + 11*x - 6 
>> p=(x-1)^3+2*(x+3)^2+x^2-2*x-2; 
>> expand(p) 
ans = 
 x^3 + 13*x + 15 
 
Guía de MATLAB – Para principiantes 
 
49 
 
5. GRAFICAS 3D EN MATLAB 
 
MATLAB tiene posibilidades de realizar varios tipos de gráficos 3D, muchas 
de ellas son simples generalizaciones de funciones disponibles para 
graficación en dos dimensiones. 
 
5.1. Comando plot3 
 
Crea una gráfica lineal tridimensional. Es similar a la función plot con la 
salvedad que plot3 acepta datos en tres dimensiones. Es decir el usuario 
debe proporcionar tres vectores: x, y y z. 
 
Ejemplo: 
 
>> x = linspace(0, 10*pi, 1000) ; 
y = cos(x); 
z = sin(x); 
plot3(x,y,z,'r','linewidth',3); 
grid on; 
xlabel('eje-X'), ylabel('eje-Y'), zlabel('eje-Z'); 
 
 
 
 
 
 
Guía de MATLAB – Para principiantes 
 
50 
 
5.2. Comando comet3 
 
Genera una versión animada de plot3, genera una animación a partir de los 
puntos a graficar. Es similar a la función comet para dos dimensiones 
 
Ejemplo: 
 
>> t = 0:pi/50:10*pi; 
comet3(sin(t),cos(t),t); 
grid on; 
xlabel('eje-X'), ylabel('eje-Y'), zlabel('eje-Z'); 
 
 
5.3. Comando mesh 
 
Crea una gráfica de superficie de malla. La función mesh puede dibujar una 
función de dos variables (z=f(x,y)) sobre un dominio rectangular. 
 
Ejemplo: 
 
>> z = [ 1 2 3 4 5 6 7 8 9 10; 2 4 6 8 10 12 14 16 18 20 
; 3 4 5 6 7 8 9 10 11 12]; 
mesh(z); 
grid on; 
xlabel('eje-X'), ylabel('eje-Y'), zlabel('eje-Z'); 
 
Guía de MATLAB – Para principiantes 
 
51 
 
 
 
Además se puede usar con tres argumentos mesh(x,y,z). 
Siendo la longitud del vector x igual al número de columnas de la matriz z, 
mientras que la longitud del vector y debe ser igual al número de filas. 
 
>> x=linspace(1,50,10); 
y=linspace(500,1000,3); 
z = [ 1 2 3 4 5 6 7 8 9 10; 2 4 6 8 10 12 14 16 18 20 ; 3 
4 5 6 7 8 9 10 11 12] ; 
mesh(x,y,z), 
grid on; 
xlabel('eje-X'), ylabel('eje-Y'), zlabel('eje-Z'); 
 
Guía de MATLAB – Para principiantes 
 
52 
 
Meshgrid 
Con la función meshgrid se crean dos matrices X (cuyas filas son copias de 
x) y Y (cuyas columnas son copias de y). Estas matrices representan 
respectivamente las coordenadas x y y de todos los puntos de la retícula. 
 
Ejemplo: 
 
>> x = 1:3; 
y = 1:5; 
[X,Y] = meshgrid(x,y) 
X = 
 1 2 3 
 1 2 3 
 1 2 3 
 1 2 3 
 1 2 3 
 
Y = 
 1 1 1 
 2 2 2 
 3 3 3 
 4 4 4 
 5 5 5 
 
La matriz de valores Z se calcula a partir de las matrices de coordenadas X y 
Y. Finalmente se dibuja la matriz Z con la función mesh. 
 
Ejemplo: 
 
>> x= [-2:0.2:2]; 
y= [-2:0.2:2]; 
[X,Y]=meshgrid(x,y); 
Z= X.*exp(-X.^2 -Y.^2); 
mesh(X,Y,Z); 
grid on; 
xlabel('eje-X'), ylabel('eje-Y'), zlabel('eje-Z'); 
 
 
Guía de MATLAB – Para principiantes 
 
53 
 
 
 
5.4. Comando surf 
 
Las gráficas surf son similares a las mesh, pero con la diferencia que surf 
crea una superficie tridimensional colorida en lugar de una rejilla. 
Los colores de la superficie varía con el valor de z. 
Su sintaxis es la siguiente: 
• surf(Z) una sola entrada en cuyo caso usa los índices fila y columna 
se toman como coordenadas x y y. 
• surf(x,y,Z) un vector x de dimensión n, un vector y de dimensión m y 
una matriz Z de dimensión mxn. 
• surf(X,Y,Z) tres matrices donde X y Y se obtuvieron a partir del 
comando meshgrid. 
 
Ejemplo: 
 
>> x= [-2 :0.2: 2] ; 
y= [-2 :0.2: 2] ; 
[X,Y]=meshgrid(x,y) ; 
Z= X.*exp(-X.^2 -Y.^2); 
surf(X,Y,Z), 
grid on; 
xlabel('eje-X'), ylabel('eje-Y'), zlabel('eje-Z'); 
Guía de MATLAB – Para principiantes 
 
54 
 
 
Shading flat 
Elimina el mallado, asigna un color para cada región de la malla dependiendo 
de su altura. 
 
>> shading flat 
 
 
 
Guía de MATLAB – Para principiantes 
 
55 
 
Shading interp 
Sobreado interpolado, que elimina el mallado y difumina los cambios de color. 
 
>> shading interp 
 
Shading faceted 
Se muestra por defecto, la malla es de color negro y la superficie adopta un 
color para cada región dependiendo de su altura. 
 
>> shading faceted 
 
Guía de MATLAB – Para principiantes 
 
56 
 
Colormap 
Establece el mapa de la figura actual en uno de los colormaps predefinidos 
 
>> colormap jet 
 
Ejemplo: 
 
>> x = -10:0.5:10; 
y =x; 
[X,Y] = meshgrid(x,y);Z = sin (sqrt(X .^2 + Y .^2)) ./ sqrt(X .^ 2 + Y .^ 2 + 
0.1); 
ax1=subplot(1,2,1); 
surf (X,Y,Z); 
colormap(ax1,jet) 
shading interp; 
ax2=subplot(1,2,2); 
surf (X,Y,Z); 
colormap(ax2,spring) 
shading interp; 
figure 
ax3=subplot(1,2,1); 
surf (X,Y,Z); 
colormap(ax3,hot) 
shading interp; 
ax4=subplot(1,2,2); 
surf (X,Y,Z); 
colormap(ax1,autumn) 
shading interp; 
 
 
Guía de MATLAB – Para principiantes 
 
57 
 
 
 
La siguiente tabla enumera los colormaps predefinidos: 
 
Nombre Escala de colores 
parula 
 
jet 
 
hsv 
 
hot 
 
cool 
 
spring 
 
summer 
 
autumn 
 
winter 
 
gray 
 
bone 
 
copper 
 
pink 
 
lines 
 
colorcube 
 
prism 
 
flag 
 
white 
 
Guía de MATLAB – Para principiantes 
 
58 
 
Comando contour 
Crea una gráfica de contorno 2-D. 
 
Ejemplo: 
 
>> x = -10:0.5:10; 
y =x; 
[X,Y] = meshgrid(x,y); 
Z = sin (sqrt(X .^2 + Y .^2)) ./ sqrt(X .^ 2 + Y .^ 2 + 
0.1); 
contour(X,Y,Z); 
 
 
 
Comando pcolor 
Crea una matriz rectangular de celdas con colores determinados por 
MATLAB. 
 
Ejemplo: 
 
>> [x,y,z] = peaks; % La función peaks genera una 
superficie que parece una montaña 
subplot(1,2,1); 
pcolor(x,y,z); shading interp; 
subplot(1,2,2); 
pcolor(x,y,z); shading interp; 
hold on; 
contour(x,y,z,20,' k '); 
Guía de MATLAB – Para principiantes 
 
59 
 
 
 
Las gráficas en pseudo-color son similares a las gráficas de contorno, 
excepto que, en lugar de líneas que resaltan un contorno específico, se 
genera un mapa bidimensional sombreado sobre una retícula. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Guía de MATLAB – Para principiantes 
 
60 
 
6. M-ARCHIVOS 
 
Existen dos tipos de M-archivo, es decir, de archivos con extensión *.m. Un 
tipo son los ficheros de comandos (es un archivo script) y el otro son la 
funciones. 
 
6.1. Editor 
 
Para crear un nuevo archivo .m nos dirigimos al icono New y elegimos la 
opción correspondiente (Script, Function, etc.). Aparece entonces la ventana 
Editor donde podemos escribir las sentencias. 
 
 
 
 
 
 
 
 
 
 
Para trabajar con el editor se utilizan los comandos tradicionales de manejo 
de archivos (Archivo nuevo – Abrir archivo – Guardar archivo, etc.) 
 
El nombre del archivo puede formarse por caracteres alfanuméricos, sin 
embargo se debe tener en cuenta que: 
• El nombre de archivo no puede empezar con un número. 
• El nombre de archivo no puede tener espacios ni caracteres 
especiales. 
• El nombre de archivo no puede coincidir con el nombre de ninguna 
de las variables definidas en el script. 
• Es conveniente el uso de nombres cortos. 
 
6.2. Script 
 
Un Script o fichero de comandos contiene simplemente un conjunto de 
comandos que se ejecutan sucesivamente cuando se teclea el nombre del 
fichero en la línea de comandos de MATLAB o se incluye dicho nombre en 
otro fichero *.m. 
Para crear el script, se escriben los datos de entrada en el Editor de esta 
manera: 
Guía de MATLAB – Para principiantes 
 
61 
 
 
variabledeentrada = input('Texto que sale en la 
pantalla') 
 
Después, se escribe los comandos deseados y para acabar, se escribe: 
 
disp('Texto que sale en la pantalla');variabledesalida 
 
Ejemplo: 
 
% ÁREA DE UN TRAPECIO 
% Pide al usuario las dimensiones de un trapecio 
b=input('Ingrese la base menor (m):'); 
B=input('Ingrese la base mayor (m):'); 
h=input('Ingrese la altura (m): '); 
%Calcula el área del trapecio 
A=h*(b+B)/2; 
%Muestra en pantalla el área del trapecio 
disp(['El área del trapecio es: ',num2str(A), 'm2 ']) 
 
Para ejecutar un script, se tienen diferentes alternativas: 
• Ejecutar el programa desde el editor mediante el ícono de ejecución. 
 
 
 
 
 
 
• Ejecutar el programa desde el editor presionando F%. 
• Ejecutar el programa desde la ventana de comandos ingresando el 
nombre del archivo (inmediatamente después del prompt y sin la 
extensión). 
En ocasiones aparecerá la siguiente ventana al ejecutar por primera vez un 
script: 
 
Guía de MATLAB – Para principiantes 
 
62 
 
 
 
Al seleccionar la primera opción se indica que el directorio actual de MATLAB 
sea el directorio en el que se ha guardado el archivo, de esta manera, si no 
hay errores de sintaxis, se ejecutarán secuencialmente todas las sentencias 
del script. 
 
6.3. Funciones 
 
Las funciones permiten definir funciones análogas a las de MATLAB, con su 
nombre, argumentos y valores de salida. La primera línea que no sea 
comentario debe empezar por la palabra function, seguida por los valores de 
salida (entre corchetes [ ] y separados por comas si hay más de uno), el 
signo igual (=) y el nombre de la función seguido de los argumentos (entre 
paréntesis ( ) y separados por comas): 
 
function [a,b,c] = nombre_función (x,y,z) 
 
En las líneas siguientes escribimos los argumentos de salida a partir de los 
de entrada. El nombre de la función y el nombre del archivo deben ser 
idénticos y no empezar por cifra sino por letra. 
 
Todas las variables dentro de una función se aíslan del espacio de trabajo de 
MATLAB. Las únicas conexiones entre las variables dentro de una función y 
el espacio de trabajo de MATLAB son las variables de entrada y salida. 
 
El número de variables de entrada pasadas a una función está disponible 
dentro de la función en la variable nargin y el número de variables de salida 
solicitadas cuando una función es llamada, está disponible dentro de la 
función en la variable nargout. 
 
Debemos tener siempre en cuenta que los argumentos pueden ser vectores, 
luego si queremos que las operaciones se hagan elemento a elemento y no 
vectorialmente debemos usar el punto. 
Guía de MATLAB – Para principiantes 
 
63 
 
Ejemplo: 
 
En un M-archivo guardamos lo siguiente: 
 
function [suma,resta] = calculos (x,y) % la función se 
llama calculos 
suma = x + y; 
resta = x - y; 
 
Ahora si queremos usarlo, debemos escribir por ejemplo en la ventana de 
comandos: 
 
>> x = 1:10; 
>> y = 16:-2:-2; 
>> [a,b] = calculos (x,y) 
a = 
 17 16 15 14 13 12 11 10 9 
8 
b = 
 -15 -12 -9 -6 -3 0 3 6 9 
12 
 
 
 
 
 
 
 
 
 
 
 
 
Guía de MATLAB – Para principiantes 
 
64 
 
7. DECISIONES y CICLOS 
 
Las decisiones son operaciones computacionales que permiten condicionar la 
ejecución de instrucciones dependiendo del resultado de una expresión cuyo 
resultado únicamente puede ser: verdadero o falso. Se utiliza la sentencia if. 
 
Los ciclos o bucles son estructuras de control que permiten repetir las 
mismas o análogas operaciones sobre datos distintos. MATLAB soporta dos 
tipos diferentes de bucles: el bucle for y el bucle while. 
 
7.1. Sentencia condicional if 
 
Esta estructura de control se usa para condicionar la ejecución de un bloque 
de instrucciones utilizando como criterio el resultado de una condición. 
 
if Condición 
Instrucciones del bloque A 
end 
 
 
 
Al entrar en la estructura, se evalúa la condición. Si el resultado es verdadero 
(V) se ejecutarán las instrucciones en el bloque P caso contrario, si el 
resultado es falso (F) el bloque no será ejecutado. En ambos casos el 
algoritmo continúa abajo del bloque. 
 
 
Guía de MATLAB – Para principiantes 
 
65 
 
Operadores relacionales y lógicos 
Para escribir la expresión que condiciona la ejecución del bloque de 
instrucciones se pueden usar operadores relacionales y operadores lógicos. 
Para que una expresión pueda ser usada como una condición, las variables 
incluidas en la expresión deben tener asignado algún valor, caso contrario 
será un error pues la condición no podría evaluarse. 
 
En el lenguaje MATLAB las expresiones usan una simbología especial: 
 
Matemáticas MATLAB 
Operadores relacionales 
<, >, ≤, ≥, =, ≠ <, >, <=, >=, ==, ~= 
 
Los operadores lógicos sirven para comprobar la veracidad o falsedad de 
enunciados, normalmente formados por más de unasentencia o 
comparación. Se suelen utilizar junto a operadores relacionales. 
 
Operador lógico Descripción Ejemplo 
& (and) Verdadero sólo si las 
dos comparaciones son 
verdaderas 
>> x=5; 
>> (x>2)&(x<10) 
 ans=1 
| (or) Verdadero si al menos 
una de las 
comparaciones es 
verdadera 
>> x=8; 
>> (x>2)|(x<5) 
 ans=1 
~ (not) Niega el resultado de la 
comparación. 
Verdadero si la 
comparación es falsa 
>> x=8; 
>> ~(x>10) 
 ans=1 
 
 
Ejemplo: Describa en notación algorítmica como reducir en 10% el valor 
almacenado en la variable p en caso de que su valor actual sea mayor a 40. 
 
if p > 40 
p = 0.9*p; 
end 
 
 
Guía de MATLAB – Para principiantes 
 
66 
 
 
 
Ejemplo: Calcular el total debe pagar una persona en un almacén de llantas. 
Los datos son la cantidad de llantas compradas y el precio unitario. Si la 
cantidad comprada es mayor a 4 llantas, el precio unitario se reduce en el 
10%. 
 
%Compra de llantas con descuento 
n=input('Cantidad de llantas') 
p=input('Precio unitario') 
if n > 4 
p = 0.9*p; 
end 
t=n*p; 
disp('Valor a pagar'); 
disp(t); 
 
Guía de MATLAB – Para principiantes 
 
67 
 
 
 
 
7.2. Sentencia condicional if else 
 
Esta estructura de control del flujo del algoritmo chequea una condición y 
dependiendo del resultado realiza las instrucciones incluidas en una de las 
dos opciones 
 
if Condición 
Instrucciones del bloque A 
else 
Instrucciones del bloque B 
end 
 
Guía de MATLAB – Para principiantes 
 
68 
 
 
 
Al entrar a esta estructura, se evalúa la condición. Si el resultado es 
verdadero (V) se ejecutará el bloque P asociado al valor verdadero, caso 
contrario, si el resultado es falso (F) se ejecutará el bloque Q. El algoritmo 
continúa abajo, después de ejecutar alguno de los dos bloques. 
 
Ejemplo: Describa en notación algorítmica como asignar a la variable m el 
mayor entre dos valores almacenados respectivamente en las variables a y 
b . 
 
 
 
Guía de MATLAB – Para principiantes 
 
69 
 
Antes del bloque, las variables a y b tienen que haber sido asignadas algún 
valor, caso contrario sería un error 
 
Ejemplo: Describa en notación algorítmica una solución al siguiente 
problema. Para el pago semanal a un obrero se consideran los siguientes 
datos: horas trabajadas, tarifa por hora y descuentos. Si la cantidad de horas 
trabajadas en la semana es mayor a 40, se le debe pagar las horas en 
exceso de 40 con una bonificación de 50% adicional al pago normal. 
 
Variables 
c: Cantidad de horas trabajadas en la semana 
t: Tarifa por hora 
d: Descuentos que se aplican al pago semanal 
p: Pago que recibe el obrero 
 
 
 
%Pago semanal 
c=input('Horas trabajadas '); 
t=input('Tarifa por hora '); 
d=input('Descuentos '); 
if t <= 40 
p=c*t - d; 
Guía de MATLAB – Para principiantes 
 
70 
 
else 
p=40*t + 1.5*t*(c - 40) - d; 
end 
disp('Valor a pagar'); 
disp(p); 
 
Ejemplo. Dado un número entero determinar si es un número par o impar. 
%Determinar si un número es para o impar 
x=input('Ingrese un numero '); 
r=mod(x, 2); %Devuelve el resto de la división de x entre 
2 
if r == 0 
disp('Par'); 
else 
disp('Impar'); 
end 
 
Ejemplo. Dados dos números enteros, determinar si uno es múltiplo del otro. 
%Determinar si un número es múltiplo de otro 
a=input('Ingrese el primer número '); 
b=input('Ingrese el segundo número '); 
if mod(a,b) == 0 | mod(b,a) == 0 
disp('son múltiplos'); 
else 
disp('no son múltiplos'); 
end 
 
7.3. Sentencia if anidada 
 
Para describir la selección de una acción entre varias opciones posibles se 
pueden estructurar decisiones dentro de otras decisiones. 
 
Ejemplo: Suponga que un local vende llantas para cierto tipo de carro con la 
siguiente política: 
 
Cantidad Precio unitario 
Menos de 5 80 
5 o 6 70 
Más de 6 60 
Lea el número de llantas de una compra y muestre el valor que debe pagar 
Guía de MATLAB – Para principiantes 
 
71 
 
Variables 
 
n: Cantidad de llantas compradas 
p: Precio unitario (80, 70, o 60) 
t: Valor de la compra 
 
 
 
 
Guía de MATLAB – Para principiantes 
 
72 
 
% Compra de llantas con descuento 
n=input('Cantidad de llantas '); 
if n<5 
p=80; 
else 
if n==5 | n==6 
p=70; 
else 
p=60; 
end 
end 
t=n*p 
disp('Valor a pagar '); 
disp(t); 
 
7.4. Bucle for 
 
Esta estructura de control se usa para poder repetir un número especificado 
de veces determinada acción. 
 
for i=a:b:c 
Bloque de instrucciones que se repiten 
end 
 
 
 
 
Guía de MATLAB – Para principiantes 
 
73 
 
En donde 
i: Variable que toma los valores del conteo 
a: Valor inicial del conteo 
b: Valor con el que se incrementa el conteo 
c: Valor final del conteo 
 
Para usar esta estructura de control es necesario especificar el conteo de 
ciclos indicando el valor inicial del conteo, el incremento y el valor final. Al 
ejecutarse la estructura el valor de la variable del conteo cambiará siguiendo 
la especificación establecida. 
 
Al entrar a esta estructura, se inicia el conteo, si la variable del conteo no 
excede al valor final, se ejecuta el bloque, regresa nuevamente al inicio del 
ciclo y se incrementa la variable del conteo. Mientras el valor del conteo no 
exceda al valor final, el bloque será nuevamente ejecutado. Cuando el conteo 
exceda al valor final, la ejecución continuará después del bloque. 
 
Ejemplo: Dado un número entero positivo n calcular y mostrar la suma de los 
cubos de los primeros n números naturales. 
 
Variables 
n: Cantidad de números naturales 
s: Suma de los cubos 
i: Conteo de ciclos (sus valores son los números naturales) 
 
%Suma de cubos 
n=input('Ingrese el valor final '); 
s=0; 
for i=1:n 
s=s + i^3; 
end 
disp('La suma es'); 
disp(s); 
 
Guía de MATLAB – Para principiantes 
 
74 
 
 
 
Ejemplo. Dado un número entero, liste las raíces cuadradas de los enteros 
impares entre 1 y el dato dado. 
 
n=input('Ingrese el valor final '); 
for x = 1: 2: n 
r=sqrt(x); 
disp([x,r]); 
end 
 
Ejemplo. Suma de los cuadrados de los primeros n números naturales. 
 
n=input('Ingrese el valor final '); 
s=0; 
for i = 1: n 
c=i^2; 
s=s+c; 
end 
disp('La suma es'); 
Guía de MATLAB – Para principiantes 
 
75 
 
disp(s); 
 
Ejemplo. Muestre el promedio de n datos ingresados desde el teclado 
n=input('Cantidad de datos '); 
s=0; 
for i = 1: n 
x=input('Ingrese un dato '); 
s=s+x; 
end 
p=s/n; 
disp('El promedio es'); 
disp(p); 
 
7.5. Bucle while 
 
Esta estructura de control nos permite repetir un determinado bloque de 
instrucciones cuando una condición es verdadera. 
 
 
while Condición 
Bloque de instrucciones que se repiten 
end 
 
Al entrar a esta estructura, se evalúa la condición. Si el resultado es 
verdadero (V) se ejecutará el bloque y regresará nuevamente a evaluar la 
condición. Mientras la condición mantenga el valor verdadero, el bloque de 
instrucciones seguirá ejecutándose. Esto significa que es necesario que en 
Guía de MATLAB – Para principiantes 
 
76 
 
algún ciclo la condición tenga el resultado falso (F) para salir de la estructura 
y continuar la ejecución después del bloque. 
 
Ejemplo: Dada una cantidad inicial de bacterias, determine en que día la 
cantidad de bacterias excede a un valor máximo sabiendo que cada día se 
duplica esta cantidad. 
 
 
 
%Crecimiento de la cantidad de bacterias 
x=input('Ingrese la cantidad inicial '); 
m=input('Ingrese la cantidad máxima '); 
d=0; 
while x <= m 
x=2*x; 
d=d+1; 
end 
disp('La cantidad excede al máximo en el día '); 
disp(d); 
 
Guía de MATLAB – Para principiantes 
 
77 
 
Ejemplo. Suma de los cuadrados de los primero n números naturales 
 
%Suma de cuadrados con WHILE 
n=input('Ingrese el valor final ');s=0; 
i=1; 
while i <= n 
c=i^2; 
s=s+c; 
i=i+1; 
end 
disp('La suma es'); 
disp(s); 
 
 
Ejemplo. Simular lanzamientos de un dado. Muestre el resultado en cada 
intento hasta que salga el 5. 
 
%Simular lanzamientos de un dado hasta que sale un número 
x=0; 
while x~=5 
x=fix(rand*6)+1; %fix redondea al entero más cercano a 
cero, rand devuelve un número aleatorio entre 0 y 1 
disp(x) 
end 
 
Ejemplo. Simular lanzamientos de un dado. Determinar la cantidad de 
lanzamientos que se realizaron hasta que se obtuvo el número 5. 
 
%Conteo de lanzamientos de un dado 
c=0; 
x=0; 
while x~=5 
x=fix(rand*6)+1; %fix redondea al entero más cercano a 
cero, rand devuelve un número aleatorio entre 0 y 1 
c=c+1; 
end 
disp('Cantidad de lanzamientos hasta que salió el 5'); 
disp(c); 
 
 
Guía de MATLAB – Para principiantes 
 
78 
 
8. INTERFAZ GRÁFICA DE USUARIO 
 
8.1. Introducción 
 
GUIDE es un entorno de programación visual disponible en MATLAB 
para realizar y ejecutar programas que necesiten ingreso continuo de 
datos. Tiene las características básicas de todos los programas visuales 
como Visual Basic o Visual C++. 
 
8.2. Inicio 
 
Para iniciar nuestro proyecto ejecutamos la siguiente instrucción en la 
ventana de comandos: 
 
>> guide 
 
Se presenta el siguiente cuadro de diálogo: 
 
 
 
Se presentan las siguientes opciones: 
 
• Blank GUI (Default): La opción de interfaz gráfica de usuario en 
blanco (viene predeterminada), nos presenta un formulario nuevo, 
en el cual podemos diseñar nuestro programa. 
Guía de MATLAB – Para principiantes 
 
79 
 
• GUI with Uicontrols: Esta opción presenta un ejemplo en el cual se 
calcula la masa, dada la densidad y el volumen, en alguno de los 
dos sistemas de unidades. Podemos ejecutar este ejemplo y obtener 
resultados. 
 
• GUI with Axes and Menu: Esta opción es otro ejemplo el cual con 
tiene el menú File con las opciones Open, Print y Close. En el 
formulario tiene un Popup menu, un push button y un objeto Axes, 
podemos ejecutar el programa eligiendo alguna de las seis opciones 
que se encuentran en el menú despegable y haciendo click en el 
botón de comando. 
 
• Modal Question Dialog: Con esta opción se muestra en la pantalla 
un cuadro de diálogo común, el cual consta de una pequeña 
imagen, una etiqueta y dos botones Yes y No, dependiendo del 
botón que se presione, el GUI retorna el texto seleccionado (la 
cadena de caracteres ‘Yes’ o ‘No’). 
 
Elegimos la primera opción, Blank GUI, y tenemos: 
 
Guía de MATLAB – Para principiantes 
 
80 
 
La interfaz gráfica cuenta con las siguientes herramientas: 
 
 
Alinear objetos 
 
Editor de menú 
 
Editor de orden de etiqueta 
 
Editor de barra de herramientas 
 
Editor del M-file 
 
Propiedades de objetos 
 
Navegador de objetos 
 
Grabar y ejecutar (ctrl. + T). 
 
La siguiente tabla muestra una descripción de los componentes: 
 
Control Valor de estilo Descripción 
Check box ‘checkbox’ Indica el estado de una opción o 
atributo 
Editable Text ‘edit’ Caja para editar texto 
Pop-up menú ‘popupmenu’ Provee una lista de opciones 
List Box ‘listbox’ Muestra una lista deslizable 
Push Button ‘pushbutton’ Invoca un evento inmediatamente 
Radio Button ‘radio’ Indica una opción que puede ser 
seleccionada 
Toggle 
Button 
‘togglebutton’ Solo dos estados, “ on” o “off” 
Slider ‘slider’ Usado para representar un rango de 
valores 
Static Text ‘text’ Muestra un string de texto en una caja 
Panel button Agrupa botones como un grupo 
Button Group Permite exclusividad de selección con 
los radio button 
 
Cambio de preferencias para mostrar nombres 
Caso no nos aparezca la etiqueta de cada elemento de la paleta de 
componentes nos dirigimos a: File>>Preferentes y seleccionamos Show 
names in component palette. 
 
Guía de MATLAB – Para principiantes 
 
81 
 
 
 
Importante: 
• El editor permite construir interfaces arrastrando y soltando 
componentes en el área de diseño de la GUI 
• Todas las GUIs creadas con guide empiezan con una función inical 
(callback) que se invoca cuando se invoca la interfaz. 
• La operación automática de guardado (sabe) genera un fichero .m y 
un fichero .fig 
 
8.3. Propiedades de los componentes 
 
Cada uno de los elementos de GUI, tiene un conjunto de opciones que 
podemos acceder con click derecho. 
 
 
 
La opción Property Inspector nos permite personalizar cada elemento. 
Guía de MATLAB – Para principiantes 
 
82 
 
 
 
Al hacer click derecho en el elemento ubicado en el área de diseño, una de 
las opciones más importantes es View Callbacks (Callbacks son funciones 
que realizan las acciones requeridas cuando un componente se activa), la 
cual, al ejecutarla, abre el archivo .m asociado a nuestro diseño y nos 
posiciona en la parte del programa que corresponde a la subrutina que se 
ejecutará cuando se realice una determinada acción sobre el elemento que 
estamos editando. 
 
Por ejemplo, al ejecutar View Callbacks>>Callbacks en el Push Button, nos 
ubicaremos en la parte del programa: 
 
function pushbutton1_Callback(hObject, eventdata, 
handles) 
%hObject handle to pushbutton1 (see GCBO) 
%eventdata reserved-to be defined in a future version of 
MATLAB 
Guía de MATLAB – Para principiantes 
 
83 
 
%handles structure with handles and user data (see 
GUIDATA) 
 
8.4. Funcionamiento de una aplicación GUI 
 
Una aplicación GUIDE consta de dos archivos: .m y .fig. El archivo .m es el 
que contiene el código con las correspondencias de los botones de control de 
la interfaz y el archivo .fig contiene los elementos gráficos. 
 
Cada vez que se adicione un nuevo elemento en la interfaz gráfica, se genera 
automáticamente código en el archivo .m. 
 
Para ejecutar una Interfaz Gráfica, si la hemos etiquetado con el nombre 
curso.fig, simplemente ejecutamos en la ventana de comandos >> curso. O 
haciendo click derecho en el m-file y seleccionando la opción RUN. 
 
8.5. Manejo de datos entre los elementos de la aplicación y 
el archivo .m 
 
Todos los valores de las propiedades de los elementos (color, valor, posición, 
string...) y los valores de las variables transitorias del programa se almacenan 
en una estructura, los cuales son accedidos mediante un único y mismo 
identificador para todos éstos. Tomando el programa listado anteriormente, el 
identificador se asigna en: 
 
handles.output = hObject; 
 
handles, es nuestro identificador a los datos de la aplicación. Esta definición 
de identificador es salvada con la siguiente instrucción: 
 
guidata(hObject, handles); 
 
guidata, es la sentencia para salvarlos datos de la aplicación. 
 
Nota: guidata es la función que guarda las variables y propiedades de los 
elementos en la estructura de datos de la aplicación, por lo tanto, como regla 
general, en cada subrutina se debe escribir en la última línea lo siguiente: 
 
guidata(hObject,handles); 
 
Guía de MATLAB – Para principiantes 
 
84 
 
Esta sentencia nos garantiza que cualquier cambio o asignación de 
propiedades o variables quede almacenado. 
 
Por ejemplo, si dentro de una subrutina una operación dio como resultado 
una variable luis para poder utilizarla desde el programa u otra subrutina 
debemos salvarla de la siguiente manera: 
 
handles.luis=luis; 
guidata(hObject,handles); 
 
La primera línea crea la variable luis a la estructura de datos de la aplicación 
apuntada por handles y la segunda graba el valor. 
 
8.6. Sentencias GET Y SET 
 
La asignación u obtención de valores de los componentes se realiza 
mediante las sentencias get y set. Por ejemplo si queremos que la variable 
unt tenga el valor del Slider escribimos: 
 
unt= get(handles.slider1,'Value'); 
 
Notar que siempre se obtienen los datos a través de los identificadores 
handles. 
 
Para asignar el valor a la variable unt al statictext etiquetada como text1 
escribimos:set(handles.text1,'String',utpl); %Escribe el valor del 
Slider...en static-text 
 
Ejemplo 
Calculadora de la presión de vapor para sustancias puras utilizando la 
Ecuación de Antoine. 
 
𝑙𝑜𝑔𝑃𝑣𝑎𝑝 = 𝐴 −
𝐵
𝑇 + 𝐶
 
 
Los datos a ingresar son: la temperatura en °C, y las constantes A, B y C. El 
resultado dado es la presión de saturación en mmHg. 
 
 
Guía de MATLAB – Para principiantes 
 
85 
 
No. SUSTANCIA FORMULA A B C 
1 carbon-tetrachloride CCL4 6.8941 1219.58 227.17 
2 trichlorofluoromethane CCL3F 6.8843 1043.01 236.86 
3 dichlorodifluoromethane CCL2F2 6.68619 782.072 235.377 
4 chlorotrifluoromethane CCLF3 6.35109 522.061 231.677 
 
 
Insertamos los componentes de la siguiente forma: 
 
 
 
Los Tag de los “Edit Text” serán temperatura, A, B y C respectivamente, y el 
Tag del “Static Text” en el cuál se visualizara la respuesta será Pvap. Los Tag 
restantes son irrelevantes pues no participan en el código. El “Push Button” 
llevará por Tag pushbutton2. 
 
Una vez realizado damos en guardar y nos dirigimos al archivo .m creado. 
 
Guía de MATLAB – Para principiantes 
 
86 
 
Justo debajo de function A_Callback(hObject, eventdata, 
handles)y de los comentarios correspondientes, escribimos el siguiente 
código: 
 
Val=get(hObject,'String'); %Almacenar valor ingresado 
NewVal = str2double(Val); %Transformar a formato double 
handles.A=NewVal; %Almacenar en identificador 
guidata(hObject,handles); %Salvar datos de la aplicación 
 
Recuérdese que la instrucción get la usamos para obtener datos ingresados 
por el usuario. Así, la línea Val=get(hObject,'String') almacena en 
Val el valor ingresado en formato String. 
 
La sentencia NewVal = str2double(Val) realiza la transformación de 
string a double, o de palabra a número. 
La sentencia handles.edit1=NewVal almacena NewVal en el identificador 
handles.A. Por último, salvamos los datos de la aplicación con la sentencia 
guidata(hObject,handles). 
 
Repetimos las mismas sentencias justo debajo de: 
 
function B_Callback(hObject, eventdata, handles) 
function C_Callback(hObject, eventdata, handles) 
function temperatura_Callback(hObject, eventdata, 
handles) 
 
Pero usando el identificador handles.B=NewVal, handles.C=NewVal y 
handles.temperatura=NewVal, según sea el caso. 
 
Finalmente debajo de function pushbutton2_Callback(hObject, 
eventdata, handles), y de los comentarios correspondientes, editamos 
el siguiente código: 
 
A=handles.A; 
B=handles.B; 
C=handles.C; 
T=handles.temperatura; 
Pv=10^(A-B/(T+C)); 
set(handles.Pvap,'String',Pv); 
 
La cuarta línea contiene la instrucción set, con la cual establecemos un valor 
string al componente Pvap (Static text), con el identificador handles.Pvap. 
Guía de MATLAB – Para principiantes 
 
87 
 
 
 
8.7. Radio Button, Button Group 
 
Gracias a este panel Button Group, los radio button que se encuentren 
dentro del panel podrán seleccionarse solamente uno a la vez haciéndolo 
muy útil para los casos en los cuales e necesitan presentar una de varias 
opciones en la GUI. 
 
Además este sencillo programa a través de un botón muestra en un static 
text la opción que se ha seleccionado. 
 
Guía de MATLAB – Para principiantes 
 
88 
 
 
 
Para poder determinar si algún radio button especifico esta seleccionado o 
no, se aplica la siguiente sentencia: 
 
Ejecutar View Callbacks>>Callbacks en el Push Button, nos ubicaremos en la 
parte del programa: 
 
function pushbutton_Callback(hObject, eventdata, handles) 
% hObject handle to pushbutton (see GCBO) 
% eventdata reserved - to be defined in a future version of 
MATLAB 
% handles structure with handles and user data (see GUIDATA) 
 
Justo debajo escribimos el siguiente código 
 
estado = get(handles.radiobt1,'Value'); 
if estado==1 
 set(handles.txtSalida,'String', 'Opcion 1'); 
Guía de MATLAB – Para principiantes 
 
89 
 
end 
 
estado = get(handles.radiobt2,'Value'); 
if estado==1 
 set(handles.txtSalida,'String', 'Opcion 2'); 
end 
 
estado = get(handles.radiobt3,'Value'); 
if estado==1 
 set(handles.txtSalida,'String', 'Opcion 3'); 
end 
 
 
 
estado = get(handles.radiobt4,'Value'); 
if estado==1 
 set(handles.txtSalida,'String', 'Opcion 4'); 
end 
 
Recuerde que radiobt1 es el nombre del primer radio button sobre la GUI, 
con el código estado = get(handles.radiobt1,'Value'); 
guardamos en la variable estado el estado del radio button, siendo 1 para 
seleccionado y 0 para no seleccionado. 
 
De igual modo se repite la acción para los radio button siguientes, radiobt2, 
radiobt3 y radiobt4. 
 
if estado==1 
 set(handles.txtSalida,'String', 'Opcion 2'); 
end 
 
Determina el String del Static text con nombre de txtSalida, según el valor de 
la variable estado. 
 
Guía de MATLAB – Para principiantes 
 
90 
 
 
 
8.8. ListBox 
 
Creamos un nuevo GUI etiquetado como Listbox. Añadimos al diseño un 
listbox y un par de statictext y los ordenamos como muestra la figura. 
 
Guía de MATLAB – Para principiantes 
 
91 
 
Haciendo doble-click en listbox editamos los elementos de la lista. Puedes 
colocar los nombres que desees. 
 
Con un click derecho en el listbox, nos ubicamos en View 
Callbacks>>Callbacks. Esto nos lleva a la m-file donde se encuentra la 
subrutina del listbox. 
Editamos el siguiente código: 
inf=get(hObject,'Value'); 
gos=get(hObject,'String'); 
 
switch inf 
 case 1 
 set(handles.text1,'string','Opción 1 
seleccionada'); 
 case 2 
 set(handles.text1,'string','Opción 2 
seleccionada'); 
 case 3 
 set(handles.text1,'string','Opción 3 
seleccionada'); 
Guía de MATLAB – Para principiantes 
 
92 
 
 case 4 
 set(handles.text1,'string','Opción 4 
seleccionada'); 
 case 5 
 set(handles.text1,'string','Opción 5 
seleccionada'); 
 case 6 
 set(handles.text1,'string','Opción 6 
seleccionada'); 
 case 7 
 set(handles.text1,'string','Opción 7 
seleccionada'); 
 case 8 
 set(handles.text1,'string','Opción 8 
seleccionada'); 
end 
Recuérdese que podemos cambiar la sentencia switch por un if-elseif-else. 
 
 
 
Guía de MATLAB – Para principiantes 
 
93 
 
9. BIBLIOGRAFIA 
 
- MATLAB Programming, MATLAB The Language of Technical 
Computing, 2004, The MathWorks, Inc.

Continuar navegando

Materiales relacionados

64 pag.
IntroduccionaMatlab

User badge image

Estudiando Ingenieria

81 pag.
aprenda-matlab-4-2

UNP

User badge image

Caio Graco Lopes Alves