Está en la página 1de 38

UMSNH  Tópicos de Matlab  FIE 

Unidad I 
 
Introducción a la programación en Matlab 
 
Introducción 
 
Hoy  en  día  la  computadora  es  una  herramienta  de  uso  muy  común.  Ésta  pueda  ser  vista  en  los 
supermercados, en las casas, en las escuelas en las industrias, en las oficinas, etc. El uso masivo de la 
computadora ha permitido al ser humano poder realizar actividades tales como: 
 
 Realizar cientos o millones de cálculos en décimas o centésimas de segundos. 
 Realizar búsquedas de información entre miles de millones de datos. 
 Etc. 
 
El  uso  de  la  computadora  en  el  entorno  académico  y  científico  nos  permite  aprovechar  sus 
características  de  precisión  y  rapidez  con  el  objeto  de  poder  resolver  problemas  de  mayor  grado  de 
dificultad.  
 
Para  poder  lograr  que  la  computadora  realice  las  órdenes  que  están  asociadas  a  un  programa,  se 
requiere un lenguaje de programación. Existen una gran variedad de lenguajes de programación, tales 
como el lenguaje: Fortran, C, Pascal, JAVA, etc. 
 
En este curso nos enfocaremos en el lenguaje de programación de Matlab, debido a sus características, 
que lo hacer ser al día de hoy uno de los principales recursos computacionales usado por los ingenieros, 
científicos y académicos de todo el mundo. 
 
Matlab  es  un  programa  de  cómputo  que  permite  realizar  operaciones  tales  como  sumas,  restas, 
multiplicaciones y divisiones así como utilizar una amplia gama de funciones. 
 
Matlab  fue  creado  por  Cleve  Moler  en  1984.  Su  idea  era  emplear  paquetes  de  rutinas  escritas  en 
lenguaje Fortran para los cursos que él impartía: Algebra Lineal y Análisis Numérico. 
 
El lenguaje de programación de Matlab se conoce como el lenguaje M. 
 
Todo número que es utilizado en Matlab es representado conceptualmente por el programa como una 
matriz, por ejemplo, la suma, 
 
22  
 
sería representada en Matlab como: 
 
 2    2  
 
Operadores matemáticos 
 
Matlab utiliza los siguientes operadores aritméticos: 
 

+  Suma 
–  Resta  
/  División a la derecha 
\  División a la izquierda 
*  Multiplicación  
^  Potenciación  
()  Agrupación  
 

Dr. Antonio Ramos Paz  1 
UMSNH  Tópicos de Matlab  FIE 

2 1
Por ejemplo, la operación   se representa en matlab como 2/3 + 1/3 
3 3
 
El  uso  de  los  paréntesis  es  de  suma  importancia,  debido  a  que  permiten  agrupar  operaciones,  por 
ejemplo, la operación: 
 
1 3  4
   
3
 
se representa en matlab como: 
 
  1  3  4  / 3  
 
El símbolo ^ es muy útil para el cálculo de cualquier tipo de raíz, por ejemplo la operación  4 81 puede 
calcularse mediante el uso de una potencia como: 
 
  81^(1/4)  
 
Recordar que:  x m / n  n x m  
 
Operaciones con matrices 
 
Considérese la siguiente matriz de 3x3: 
 
1 2 3 
A   4 5 6   
7 8 9 
 
Su representación en matlab es: 
 
  A = [1 2 3;4 5 6;7 8 9] 
 
La  matriz  se  introduce  a  matlab  por  medio  del  uso  de  corchetes  cuadrados.  La  introducción  de  los 
elementos es por renglón. El símbolo ; representa el final de los elementos del renglón. 
 
Considérese la matriz 
 
1 2 4 6 
B  
8 7 4 3
 
Su representación en matlab es: 
 
B = [1 2 4 6; 8 7 4 3] 
 
Ejemplo: considérese las matrices: 
 
 3 6 2   8 5 3
 
A   1 0 4     B   4 6 7   
 2 7 5   1 4 3 
 
la  representación  de  estas  matrices  en  matlab  se  realiza  por  medio  las  siguientes  instrucciones, 
introducidas desde la línea de comandos: 
 

Dr. Antonio Ramos Paz  2 
UMSNH  Tópicos de Matlab  FIE 

A = [‐3 6 2; ‐1 0 4; 2 7 5] 
 
B = [8 5 ‐3;4 ‐6 7;‐1 4 3] 
 
Consideremos ahora la realización de algunas operaciones entre las matrices A y B, tales como: A+B, A‐
T ‐1 ‐1 ‐1 ‐1
B,  AB, BA, A , A , B , AA  y BB  
 
Las operaciones se realizarían de la siguiente forma, 
 

A + B 
ans = 
A B    
       5    11    ‐1 
     3    ‐6    11 
     1    11     8 
 
 
A‐B 
ans = 
A B   ‐11     1     5 
‐5     6    ‐3 
3     3     2 
 
 
A*B 
ans = 
AB       ‐2   ‐43    57 
   ‐12    11    15 
    39   ‐12    58 
 
 
B*A 
ans = 
BA      ‐35    27    21 
     8    73    19 
     5    15    29 
 
 
A' 
ans = 
AT       ‐3    ‐1     2 
     6     0     7 
     2     4     5 
 
 
inv(A) 
ans = 
A 1      ‐0.1892   ‐0.1081    0.1622 
    0.0878   ‐0.1284    0.0676 
   ‐0.0473    0.2230    0.0405 
 
 
A*inv(A) 
ans = 
AA1       1.0000    0.0000   ‐0.0000 
   ‐0.0000    1.0000   ‐0.0000 
    0.0000   ‐0.0000    1.0000 
 
 
Solución de sistemas de ecuaciones lineales con dos incógnitas usando Matlab 
 
Considérese el siguiente sistema dos ecuaciones con dos incógnitas: 
 
x1  x2  1
 
x1  x2  7

Dr. Antonio Ramos Paz  3 
UMSNH  Tópicos de Matlab  FIE 

 
La representación matricial del sistema de ecuaciones anterior es: 
 
1 1  x1  1 
1 1   x   7   
  2  
 
en forma compacta se tiene: 
 
AX  B  
 
resolviendo para  X  tomando en cuenta que  A ,  B  y  X  son matrices se tiene que: 
 
X  A1 B  
 
de aquí se puede apreciar que la solución está dada por el producto de la inversa de la matriz  A  con la 
matriz  B . 
 
Utilizando  matlab  la  solución  del  sistema  de  ecuaciones  se  puede  obtener  por  medio  de  la  siguiente 
secuencia de instrucciones: 
 
 
 
>> A = [1 ‐1;1 1] 
A = 
     1    ‐1 
     1     1 
 
>> B = [1;7] 
B = 
     1 
     7 
 
>> X = inv(A)*B 
X = 
     4 
     3 
 
 
Del valor obtenido para la matriz  X  se tiene que: 
 
 x1   4 
 x   3  
 2  
 
Otra  alternativa  para  la  solución  del  sistema  de  ecuaciones  anterior  puede  ser  utilizando  la  división 
izquierda definida en Matlab. Esta división realiza implícitamente la inversa de una matriz y la multiplica 
por un vector de términos independientes.  
 
 
>> A = [1 ‐1;1 1] 
A = 
     1    ‐1 
     1     1 
 
>> B = [1;7] 
B = 
     1 
     7 
 
>> A \ B 
ans = 
     4 
     3 

Dr. Antonio Ramos Paz  4 
UMSNH  Tópicos de Matlab  FIE 

Manejo de elementos contenidos en una matriz  
 
Estos  pueden  ser  manipulados  en  forma  independiente  al  resto  de  sus  elementos  compañeros,  por 
ejemplo, consideremos la siguiente matriz, 
 
1 2 3 
 
A  4 5 6   
7 8 9 
 
 
Los  elementos  que  están  dentro  del  recuadro  pueden  ser  representados  como  otra  matriz,  de  la 
siguiente manera: 
 
B = A(2:3,2:3), aquí se dice que la matriz B está formada por las filas 2 a 3 y las columnas 2 a 3 de la 
matriz A, por lo que entonces, la matriz B tendrá los elementos: 
 
5 6 
B  
8 9 
 
Consideremos ahora la matriz, 
 
1 2 3 4 5 
A  
 6 7 8 9 10 
 
Los elementos contenidos en el recuadro pueden formar otra matriz, la cual se puede definir como: 
 
B = A(1:1,2:5) 
 
La instrucción anterior especifica que la matriz B está formada por el renglón 1 de la matriz B y de las 
columnas 2 a 5,  por lo que entonces la matriz B es, 
 
  B   2 3 4 5  
 
  X(:,2) = []  borra la columna 2 de la matriz X 
 
Funciones con matrices elementales 
 
zeros  genera una matriz de ceros, del orden que se especifica, 
 
0 0 0
    A = zeros(3)    A   0 0 0   
 0 0 0 
 
0 0 0 0
    A = zeros(3,4)    A   0 0 0 0   
 0 0 0 0 
 
 
ones  genera una matriz de unos, del orden que se especifica, 
 

Dr. Antonio Ramos Paz  5 
UMSNH  Tópicos de Matlab  FIE 

1 1 1
    A = ones(3)    A  1 1 1  
1 1 1
 
1 1 1 1
    A = ones(3,4)    A  1 1 1 1  
1 1 1 1
 
Si  se  quisiera  tener  una  matriz  de  orden  3x4  con  todos  sus  elementos  iguales  a  4,  podemos  hacer  lo 
siguiente. 
    A = ones(3,4)*4 
 
 4 4 4 4
    A   4 4 4 4   
 4 4 4 4 
 
Lo que hace la instrucción es generar una matriz de 3x4 y multiplicar cada uno de sus elementos por 4. 
 
eye   genera una matriz identidad del orden que se especifica por el parámetro, 
 
1 0 0 0 
0 1 0 0
    A = eye(4)     A  
0 0 1 0
 
0 0 0 1 
 
Si queremos tener una matriz diagonal de orden 4 cuyos elementos sean iguales a 5, podemos hacer lo 
siguiente, 
 
5 0 0 0
0 5 0 0
    A = eye(4)*5    A  
0 0 5 0
 
0 0 0 5
 
El comando rand() genera una matriz de números aleatorios. Por ejemplo la instrucción, 
 
    A = rand(4,3) 
 
genera una matriz de 4x3 de números aleatorios, tal y como se observa a continuación, 
 
 0.4218 0.6557 0.6787 
 0.9157 0.0357 0.7577 
  A  
 0.7922 0.8491 0.7431
 
 0.9595 0.9340 0.3922 
 
Una matriz muy utilizada en el álgebra línea es la matriz de Hilbert, la cual está dada por, 
 
1
  hij    para  i, j  1, 2,..., n . 
i  j 1
 
Para generar una matriz de Hilbert de 4x4 se utiliza el siguiente comando, 
 

Dr. Antonio Ramos Paz  6 
UMSNH  Tópicos de Matlab  FIE 

  A = hilb(4) 
 
generando, 
 
1.0000 0.5000 0.3333 0.2500 
 0.5000 0.3333 0.2500 0.2000 
  A  
 0.3333 0.2500 0.2000 0.1667 
 
 0.2500 0.2000 0.1667 0.1429 
 
Si se utiliza el comando format rat, la matriz se visualiza como, 
 
 1 1 / 2 1 / 3 1 / 4
1 / 2 1 / 3 1 / 4 1 / 5 
  A  
1 / 3 1 / 4 1 / 5 1 / 6 
 
1 / 4 1 / 5 1 / 6 1 / 7 
 
El  comando  magic(n)  genera  un  cuadrado  mágico  de  n  n   (un  cuadrado  mágico  es  una  matriz  de 
n  n en dónde los elementos de todas sus filas, columnas y diagonales suman una misma cantidad). 
 
8 1 6 
    A = magic(3)    A   3 5 7   
 4 9 2 
En este caso la cantidad que suman es 15. 
 
Graficación en Matlab 
 
Para realizar la grafica de una función se deben de introducir en forma matricial los conjuntos  x  e  y . 
 
Ejemplo: consideremos la grafica de la función  y  3 x  2  
 
Para realizar la graficación de la función anterior, primeramente se debe de definir una matriz renglón 
que contenga el rango de valores para la variable x . Si utilizamos un rango de ‐3 a 3, la forma en la que 
se define este rango es: 
 
 
>> X = ‐3:3 
X = 
 
    ‐3    ‐2    ‐1     0     1     2     3 
 
 
A continuación se define el valor de las variables  y  por medio de la función que relaciona a las variables 
x  e  y  de la siguiente manera: 
 
 
>> Y = 3*X+2 
Y = 
 
    ‐7    ‐4    ‐1     2     5     8    11 
 
 
Finalmente  se  procede  a  dar  la  instrucción  realizar  la  gráfica  de  los  vectores  x   e  y   de  la  siguiente 
manera: 
 
>> plot(X,Y) 
 

Dr. Antonio Ramos Paz  7 
UMSNH  Tópicos de Matlab  FIE 

El resultado es la gráfica que se muestra en la Figura siguiente, 
12

10

-2

-4

-6

-8
-3 -2 -1 0 1 2 3

 
Se pueden adicionar elementos a la gráfica anterior en base a los siguientes comandos: 
 
 title:  establece el título de la gráfica 
 xlabel  establece la etiqueta en el eje de las abscisas 
 ylabel  establece la etiqueta en el eje de las ordenadas 
 grid   establece la retícula o cuadrícula en la gráfica   
 
Al adicionar algunos de estos elementos a la gráfica anterior se obtiene, 
 
Title
y = 3x+2
12

10

ylabel
4

2
y

-2

-4

-6

-8 xlabel
-3 -2 -1 0 1 2 3
x
 
Ejemplo: sea la función  y  x 2  x  6 ,  la secuencia de comandos utilizados para realizar la gráfica de la 
función  y  x 2  x  6 son: 
 
6

 
  4

 
2
x = ‐4:3; 
y = x.^2+x‐6; 
0
plot(x,y) 
  -2
 
-4

-6
-4 -3 -2 -1 0 1 2 3

 
 
El  resultado  obtenido  es  una  parábola,  sin  embargo  se  aprecia  que  debido  a  los  pocos  puntos  que  la 
definen,  se  pierde  un  poco  la  característica  curva  de  la  parábola.  Realicemos  la  gráfica  con  un  mayor 
número de puntos, utilizando ahora un incremento de 0,1 entre los elementos que definen el rango, de 
la siguiente manera; 

Dr. Antonio Ramos Paz  8 
UMSNH  Tópicos de Matlab  FIE 

6
 
  4

 
2
 
x = ‐4:0.1:3;  0
y = x.^2+x‐6; 
plot(x,y)  -2

  -4

-6

-8
-4 -3 -2 -1 0 1 2 3

 
 
Adicionando algunos elementos se tiene 
 
Y = 3X+2
6

 
4
 
  2

grid on 
0
xlabel(‘x’) 

Y
ylabel(‘y’)  -2
title(‘y = 3x+2’) 
  -4

  -6

 
-8
-4 -3 -2 -1 0 1 2 3
X

 
Gráfica de dos o más funciones en un mismo plano 
 
Considérese que se tienen que graficar las funciones 
 
  y  x 1 

  y  x2  x  6  
 
La secuencia de instrucciones utilizadas para la realización de las gráficas de las funciones son: 
  6
  y = x+1
y = x*x-x-6
  4

x = ‐3:0.01:4; 
2
y1 = x+1; 
y2 = x.^2‐x‐6;  0
plot(x,y1,x,y2,'‐‐'); 
y

grid on  -2

legend('y = x+1','y = x*x‐x‐6'); 
-4
xlabel('x'); 
ylabel('y');  -6
 
-8
-3 -2 -1 0 1 2 3 4
x
 
 
Múltiples gráficas en una misma ventana 
 
Consideremos  ahora  que  se  tienen  que  graficar  varias  funciones,  sin  embargo  deben  hacerse  en 
diferentes gráficas. 
 
 
Por ejemplo, las funciones  y  sen  x  ,  y  cos  x   

Dr. Antonio Ramos Paz  9 
UMSNH  Tópicos de Matlab  FIE 

 
  1
f(x) = seno(x)

x = 0:0.01:2*pi; 
0.5
y1 = sin(x); 
0
y2 = cos(x); 
subplot(2,1,1);  -0.5

plot(x,y1);  -1
0 1 2 3 4 5 6 7
title('f(x) = seno(x)'); 
f(x) = coseno(x)
grid on  1
subplot(2,1,2);  0.5
plot(x,y2); 
0
title('f(x) = coseno(x)'); 
grid on  -0.5

-1
0 1 2 3 4 5 6 7

 
 
Grafica en un mismo plano de funciones de diferentes magnitudes 
 
En  ocasiones  es  necesario  graficar  en  un  mismo  plano  el  comportamiento  de  funciones  que  tienen 
órdenes de magnitud diferentes. Para esto es utilizado el comando plotyy.  
 
Ejemplo: graficar las funciones  200e 0.05 x senx  y  0.8e-0.5 x sen 10 x  . 
 
Solución 
  200 0.8

  150 0.6
 
100 0.4
 
x = 0:0.01:20;  50 0.2
y1 = 200*exp(‐0.05*x).*sin(x); 
0 0
y2 = 0.8*exp(‐0.5*x).*sin(10*x); 
plotyy(x,y1,x,y2,'plot');  -50 -0.2

-100 -0.4

-150 -0.6

-200 -0.8
0 2 4 6 8 10 12 14 16 18 20

 
 
Gráfica de funciones implícitas 
 
Considérese la gráfica de la función 
 
  x 2  y 2  25  
 
Ésta es una función implícita. Para realizar su gráfica considérese el siguiente comando. 
 
x2+y 2=25
  5

ezplot('x^2+y^2=25',[‐5,5,‐5,5])  4

0
y

-1

-2

-3

-4

-5
-5 -4 -3 -2 -1 0 1 2 3 4 5

  x

 
Ejemplo, graficar la hipérbola  2 x 2  3 y 2  1  
 
Para graficar esta función implícita se utiliza el comando: ezplot('2*x^2‐3*y^2=1'), lo cual genera la 
siguiente gráfica: 

Dr. Antonio Ramos Paz  10 
UMSNH  Tópicos de Matlab  FIE 

2 x 2-3 y 2=1
6

y
-2

-4

-6
-6 -4 -2 0 2 4 6
x
 

Múltiples gráficas con subplot 
 
La función subplot genera una matriz gráfica, en donde en cada elemento de la matriz se puede colocar 
una gráfica.  
 
A manera de ejemplo, considérese la gráfica de las seis funciones trigonométricas. Se define una matriz 
de 3 filas y dos columnas. En la posición (1,1) se coloca la gráfica de la función seno, en la posición (1,2) 
la gráfica de la función coseno y así sucesivamente. 
 
x = 0:0.01:2*pi;   
y = sin(x);   
y2 = 0.01*cos(x); 
1 1
y3 = tan(x); 
0.5 0.5
y4 = cot(x);  0 0

y5 = sec(x);  -0.5 -0.5

y6 = csc(x);  -1
0 1 2 3 4 5 6 7
-1
0 1 2 3 4 5 6 7

subplot(3,2,1)  1500 200


plot(x,y)  1000 0

subplot(3,2,2)  500
-200
-400
plot(x,y2)  0
-600

subplot(3,2,3)  -500
0 1 2 3 4 5 6 7
-800
0 1 2 3 4 5 6 7

plot(x,y3)  1500 1000

subplot(3,2,4)  1000
500

plot(x,y4)  500
0
subplot(3,2,5)  0

-500 -500
plot(x,y5)  0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7

subplot(3,2,6)   
plot(x,y6) 
 

Diseño de Interfaces gráficas de usuario (GUI) 
 
Una inferfaz gráfica de usuario, GUI (Graphical User Interface), por sus siglas en inglés, es un elemento 
computacional  que  permite  una  interacción  más  sencilla  entre  el  ser  humano  y  un  programa 
computacional. Esta interacción se logra a través de elementos tales como: 
 
 Ventanas 
 Botones de acción 
 Deslizadores 
 Casillas de verificación 
 Cuadros de listas 
 Etc. 
 
A través de estos elementos la interacción humano‐computadora se vuelve más simple.  
 
A continuación se describirá la forma de desarrollar interfaces gráficas de usuario (GUI) usando matlab. 
 
Las  GUI  en  matlab  se  desarrollan  a  través  del  GUIDE  (Graphical  User  Interface  Development 
Environment). Para esto se da un clic en el botón que se muestra en la figura siguiente. 
 

Dr. Antonio Ramos Paz  11 
UMSNH  Tópicos de Matlab  FIE 

 
Una vez que se presiona este botón aparecerá la ventana que se muestra a continuación. 
 

 
 
En esta ventana se puede seleccionar entre desarrollar una GUI partiendo de cero o crear una a partir de 
un prediseño. Para nuestro caso se seleccionará Blank GUI. A continuación aparecerá la ventana que se 
muestra a continuación, a través de la cual se diseñará la GUI. 
 

 
 
 

Dr. Antonio Ramos Paz  12 
UMSNH  Tópicos de Matlab  FIE 

A continuación se muestran una serie de ejemplos de GUIs. 
 
Calculadora simple usando una GUI 
 
Esto  proyecto  consta  de  una  ventana  la  cual  tiene  cuatro  textos  estáticos,  tres  ventanas  de  edición  y 
cinco botones de acción. La Figura siguiente muestra el diseño de la interfaz gráfica. 
 
 

 
 
 
Analicemos ahora la función que se ejecuta al presionar el botón sumar: 
 
% ‐‐‐ Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles) 
 
 
sumando1 = str2double(get(handles.edit1,'string')); 
Esta instrucción permite convertir el texto que se 
  encuentra  en  la  ventana  de  edición  1  en  un 
número  doble  y  éste  valor  le  es  asignado  a  la 
variable sumando1. 
 
sumando2 = str2double(get(handles.edit2,'string'));
 
Esta instrucción permite convertir el texto que se 
encuentra  en  la  ventana  de  edición  1  en  un 
número  doble  y  éste  valor  le  es  asignado  a  la 
variable sumando1. 
 
resultado = sumando1+sumando2; 
 
La variable resultado recibe el valor de la suma de 
las variables sumando1 con sumando2. 
 
 

Dr. Antonio Ramos Paz  13 
UMSNH  Tópicos de Matlab  FIE 

 
set(handles.edit3,'string',num2str(resultado)); 
Esta instrucción convierte el número contenido en 
 
la variable resultado en una variable de tipo string 
y fija este valor en la ventana de edición 3 
 
 
A continuación se muestra el código asociado con los botones de acción restantes: 
 

% ‐‐‐ Executes on button press in pushbutton2. 
function pushbutton2_Callback(hObject, eventdata, handles) 
 
Resta  minuendo = str2double(get(handles.edit1,'string')); 
sustraendo = str2double(get(handles.edit2,'string')); 
resultado = minuendo‐sustraendo; 
set(handles.edit3,'string',num2str(resultado)); 
 
 

% ‐‐‐ Executes on button press in pushbutton3. 
function pushbutton3_Callback(hObject, eventdata, handles) 
 
factor1 = str2double(get(handles.edit1,'string')); 
Multiplicar  factor2 = str2double(get(handles.edit2,'string')); 
resultado = factor1*factor2; 
set(handles.edit3,'string',num2str(resultado)); 
 
 
 
 

% ‐‐‐ Executes on button press in pushbutton4. 
function pushbutton4_Callback(hObject, eventdata, handles) 
 
numerador = str2double(get(handles.edit1,'string')); 
denominador = str2double(get(handles.edit2,'string')); 
Dividir  if (denominador == 0) 
    questdlg('Division entre cero, verificar los datos'); 
else 
    resultado = numerador/denominador; 
    set(handles.edit3,'string',num2str(resultado)); 
end 
 
 
 

% ‐‐‐ Executes on button press in pushbutton5. 
function pushbutton5_Callback(hObject, eventdata, handles) 
 
Inicializar  set(handles.edit1,'string',num2str(0)); 
set(handles.edit2,'string',num2str(0)); 
set(handles.edit3,'string',num2str(0)); 
 
 
Graficador de funciones cúbicas 
 
A continuación se propone una interfaz gráfica que será utilizada para graficar una función cúbica de la 
forma: 
 
  f  x   a3 x3  a2 x 2  ax  a0  
 

Dr. Antonio Ramos Paz  14 
UMSNH  Tópicos de Matlab  FIE 

La GUI está formada por siete textos estáticos, siete ventanas de edición, tres botones de acción y un 
eje, tal y como se muestra en la figura siguiente. 
 

 
 
A continuación se analiza la función que se ejecuta en el momento en que se presiona el botón de 
graficar. 
 
GUI para realizar la gráfica de una función 
 
% ‐‐‐ Executes on button press in pushbutton1. 
function pushbutton1_Callback(hObject, eventdata, handles) 
 
a3 = str2double(get(handles.edit1,'string'));  Convierte a doble el texto contenido en la ventana de edición 
1 y se le asigna a la variable a3 
a2 = str2double(get(handles.edit2,'string'));  Convierte a doble el texto contenido en la ventana de edición 
2 y se le asigna a la variable a2 
a1 = str2double(get(handles.edit3,'string'));  Convierte a doble el texto contenido en la ventana de edición 
3 y se le asigna a la variable a1 
a0 = str2double(get(handles.edit4,'string'));  Convierte a doble el texto contenido en la ventana de edición 
4 y se le asigna a la variable a0 
xi = str2double(get(handles.edit5,'string'));  Convierte a doble el texto contenido en la ventana de edición 
5 y se le asigna a la variable xi 
xf = str2double(get(handles.edit6,'string'));  Convierte a doble el texto contenido en la ventana de edición 
6 y se le asigna a la variable xf 

delta = str2double(get(handles.edit7,'string')); Convierte a doble el texto contenido en la ventana de edición 
7 y se le asigna a la variable delta 
x = xi:delta:xf;  Genera un  arreglo de números que contiene desde xi hasta xf 
con incrementos dados por delta. 
y = a3*x.^3+a2*x.^2+a1*x+a0;  Genera un vector de variables y en base a la evaluación de la 
función polinomial de tercer orden. 
axes(handles.axes1);  Fija que al eje1 como elemento en el cual se graficará la 
función que sea especificada con el uso del comando plot. 
plot(x,y);  Grafica en el eje 1 las variables x e y
 

Dr. Antonio Ramos Paz  15 
UMSNH  Tópicos de Matlab  FIE 

Algunos comandos útiles en matlab 
 
 
who: despliega el pantalla el nombre de las variables que se encuentran definidas. 
 
version: despliega en pantalla la versión de matlab. 
 
clear: borra todas las variables definidas en memoria. 
 
clc: borra la pantalla del área de trabajo 
 
quit: termina la sesión en matlab. 
 
clock: regresa la hora 
 
date: regresa la fecha 
 
 
Formato numérico 
 
format: define el formato numérico de salida de matlab. 
 
 
FORMAT SHORT     formato con 5 dígitos. 
FORMAT LONG       formato con 15 dígitos. 
FORMAT SHORT E   formato de punto flotante con 5 dígitos. 
FORMAT LONG E    formato de punto flotante con 15 dígitos. 
FORMAT HEX         formato hexadecimal 
FORMAT RAT         Hace una aproximación racional de las cantidades 
FORMAT +                         Los  símbolos +,  ‐ y  espacio en  blanco  son  representan elementos  positivos, 
negativos y cero. Las partes imaginarias se desprecian. 
 
 
Ejemplo:  considérese  que  se  desea  encontrar  una  representación  fraccionaria  de  la  raíz  cuadrada  del 
número 3. 
 

>> format rat 
 
>> sqrt(3) 
 
ans =    1351/780    
 
>> 
 
Solución de ecuaciones de segundo grado y orden superior 
 
El comando roots determina la raíces (roots) de una ecuación cuadrática, la cual se especifica por medio 
de  un  vector  el  cual  contiene  los  coeficientes  de  la  ecuación  cuadrática,  los  cuales  deben  de  estar 
ordenados en base a la forma general, 
 
ax 2  bx  c  0  
 
Ejemplo, resolver la ecuación, 
 
x 2  3 x  10  0  
 
se podría seguir la siguiente secuencia de instrucciones en matlab, 

Dr. Antonio Ramos Paz  16 
UMSNH  Tópicos de Matlab  FIE 

Primeramente se define un vector con los coeficientes de la ecuación cuadrática, 
 
A = [1 3 ‐10] 
 
A  continuación  utilizamos  el  comando  roots,  dándole  como  parámetro  el  vector  que  contiene  los 
coeficientes de la ecuación cuadrática, 
 
roots(A) 
 
El resultado serán las raíces de la ecuación de segundo grado, las cuáles son: 
 
ans = 
 
    ‐5 
     2 
 
Lo cual significa que las raíces de la ecuación son:  x  5  y  x  2 . 
 
Este comando también permite encontrar las raíces de ecuaciones de orden superior, simplemente es 
necesario  formar  un  vector  que  contenga  los  coeficientes  de  la  ecuación.  En  caso  de  que  algún 
coeficiente sea cero, éste se debe de poner, por ejemplo, consideremos la ecuación,  x 4  16  0  
 
El vector que representa los coeficientes de esta ecuación es: 
 
A = [1 0 0 0 ‐16] 
 
Si aplicamos el comando roots, 
 
roots(A) 
 
el resultado será: 
 
ans = 
 
  ‐2.0000           
   0.0000 + 2.0000i 
   0.0000 ‐ 2.0000i 
   2.0000           
 
Lo que significa que las raíces son:  x1  2 ,  x2  2i ,  x3  2i  y  x4  2 . 
 
Evaluación de polinomios 
 
Sea la función polinomial  
 
  f  x   3x 4  7 x3  2 x 2  x  1  
 
Calcular  f  2.5   
 
Primeramente se define un vector con los coeficientes de  f  x  , expresados desde el coeficiente que 
acompaña al término de mayor grado hasta el término independiente. 
 
c = [3 ‐7 2 1 1] 
 
 

Dr. Antonio Ramos Paz  17 
UMSNH  Tópicos de Matlab  FIE 

A continuación se utiliza el comando polyval de la siguiente manera, 
 
yi = polyval(c,2.5) 
 
dando como resultado, 
 
yi =   23.8125 
 
Funciones adicionales con polinomios 
 
conv:    Multiplicación de polinomios 
 
deconv:   división de polinomios 
 
poly:    Polinomio en base a sus raíces 
 
polyder:   Derivada de un polinomio 
 
polyval:    Evaluación de un polinomio 
 
residue:   Expansión en fracciones parciales 
 
roots:    Raíces de un polinomio 

Ejemplo: considérese los polinomios 
 
  f  x   x3  3x 2  8 x  2  

  g  x   3 x 3  8 x 2  2 x  10    
 
Calcular con la ayuda de matlab: 
 
a) f  x  g  x   
b) f ' x  
c) f  3  
d) f  2 g  2  
Solución 
 
Considere la siguiente secuencia de instrucciones 
 
 
>> f = [1 3 8 2]; 
 
>> g = [‐3 8 ‐2 10]; 
 
>> h = conv(f,g) 
 
h =    ‐3    ‐1    ‐2    62    30    76    20 
 
>> derivada_f = polyder(f) 
 
derivada_f =     3     6     8 
 
>> f_evaluada_en_3 = polyval(f,3) 
 
f_evaluada_en_3 =    80 
 
>> producto = polyval(f,2)*polyval(g,2) 

Dr. Antonio Ramos Paz  18 
UMSNH  Tópicos de Matlab  FIE 

 
producto =   532 
 
>> 

Funciones Elementales en Matlab 
 
Funciones trigonométricas 
 
sin    calcula el seno del argumento 
cos    calcula el coseno del argumento 
tan    calcula la tangente del argumento 
cot    calcula la cotangente del argumento 
sec    calcula la secante del argumento 
csc    calcula la cosecante del argumento 
 
Ejemplo:  realizar  la  grafica  de  las  funciones  y1  sent   con  la  función y2  cost desde  t  0 hasta 
t  2 . 
 
Solución 
 
Considere la siguiente secuencia de instrucciones. 
 
  1

  0.8
Seno(t)
Coseno(t)
  0.6
 
0.4
t = 0:0.01:2*pi; 
0.2
y1 = sin(t); 
y2 = cos(t);  0

plot(t,y1,t,y2,'‐‐')  -0.2

legend('Seno(t)','Coseno(t)')  -0.4

-0.6

-0.8

-1
0 1 2 3 4 5 6 7

 
 
Funciones trigonométricas inversas 
 
asin   calcula el seno inverso del argumento 
acos  calcula el coseno inverso del argumento 
atan  calcula la tangente inversa del argumento 
acot  calcula la cotangente inversa del argumento 
asec  calcula la secante inversa del argumento   
acsc   calcula la cosecante inversa del argumento 
 
Ejemplo:  utilizar  las  funciones  trigonométricas  para  determinar  el  valor  de  los  lados  a  y  b  para  el 
triángulo rectángulo siguiente. 
 

b
a
30
Solución 
 
Se tiene que, 
 

Dr. Antonio Ramos Paz  19 
UMSNH  Tópicos de Matlab  FIE 

  a  5 tan 30  
 
5
  b  
cos 30
 
Utilizando matlab se tiene que, 
 
>> a = 5*tan(30*pi/180) 
 
a =    2.8868 
 
>> b = 5/cos(3*pi/180) 
 
b =    5.0069 
 
>> 
 
Funciones exponenciales y logarítmicas 
 
exp   realiza la operación  e x   donde x es el argumento 
log   realiza la operación  log x   
donde  x  es  el  argumento  y  log  es  el  logaritmo 
natural 
log10   realiza la operación  log x   
donde  x  es  el  argumento  y  log  es  el  logaritmo  en 
base 10. 
 
Funciones de números complejos 
 
abs    calcula el valor absoluto de un número complejo 
angle  calcula el ángulo de fase de un número complejo 
conj   calcula el conjugado de un número complejo 
imag  determina la parte imaginaria de un número complejo 
real   determina la parte real de un número complejo 
 
La introducción de un número complejo se puede hacer de varias maneras: 
 

EDU» z1 = 1+2i 
 
z1 =  1.0 + 2.000i 
 
Otra alternativa es la siguiente: 
 

EDU» z1 = 1+2j 
 
z1 = 1.0 + 2.0000i 

Una tercera alternativa es: 

EDU» z1 = 1+2*sqrt(‐1) 
 
z1 =   1.0000 + 2.0000i 

Dr. Antonio Ramos Paz  20 
UMSNH  Tópicos de Matlab  FIE 

Algunas otras funciones de matlab 
 
 
cumprod:  calcula el promedio acumulado de los valores en un arreglo 
 
 
cumsum:  calcula la suma acumulada de los valores en un arreglo 
 
 
factor:    encuentra los factores primos 
 
  Ejemplo:   factor(15)  ans =         3     5 
 
 
factorial:  calcula el factorial 
 
  Ejemplo:   factorial(4)  ans =        24 
 
 
gcd:    encuentra el máximo común divisor 
 
 
isprime:  determina  si  un  número  es  primo.  Regresa  un  uno  si  es  primo,  en  caso 
contrario cero. 
 
Ejemplo:  isprime(4)  ans =         0 
 
 
lcn:    encuentra el mínimo común denominador 
 
 
length:    determina la mayor dimensión de un arreglo 
 
Ejemplo:   A = [12.3 23.2 1.2 4.3]; 
 
length(A)    ans =         4 
 
 
max:    encuentra el máximo valor de un arreglo y determina cuál elemento 
 
Ejemplo:  
 
[elemento posicion] = max(A) 
 
elemento =     23.2000  posicion =  2 
 
 
mean:    calcula el promedio de los elementos de un arreglo 
 
Ejemplo:  
 
mean(A)   ans =  10.2500 
 

Dr. Antonio Ramos Paz  21 
UMSNH  Tópicos de Matlab  FIE 

 
median:   encuentra la mediana de los elementos contenidos en un arreglo 
 
Ejemplo: 
 
median(A)  ans =  8.3000 
 
 
min:    encuentra el mínimo valor de un arreglo y determina cuál elemento 
 
Ejemplo: 
 
[elemento posicion]  = min(A) 
 
elemento =  1.2000  posicion =  3 
 
 
prod:    multiplica los valores en un arreglo 
 
Ejemplo: 
 
prod(A)    ans =      1.4725e+003 
 
 
rand:    calcula números aleatorios 
 
Ejemplo: 
 
rand()    ans =      0.8147 
 
 
rats:    convierte la entrada a una representación fraccional 
 
Ejemplo: 
 
rats(1.2)   ans =  6/5      
 
 
size:    determina el número de filas y columnas de un arreglo 
 
Ejemplo: 
 
[filas columnas] = size(A)    filas =  1  columnas =     4 
 
 
std:    determina la desviación estándar de los números contenidos en un arreglo 
 
Ejemplo: 
 
std(A)  ans =      9.8185 
 
 
 

Dr. Antonio Ramos Paz  22 
UMSNH  Tópicos de Matlab  FIE 

 
sum:    suma los elementos contenidos en un arreglo
 
Ejemplo: 
 
sum(A)    ans =     41 
 
 
var:    calcula la varianza de los elementos de un arreglo 
 
Ejemplo: 
 
var(A)    ans =     96.4033 
 
 
Ejemplo: utilizando las funciones de números complejos definidas por Matlab, encontrar la impedancia 
equivalente en las terminales a‐b para el circuito de la figura siguiente. 
 
1  2 j 2  3 j
a

4  2 j

b
Solución 
 
z1 = 1+2j; 
z2 = 2+3j; 
z3 = 4+2j; 
zequi = z1+z2+z3 
 
zequi =  7.0000 + 7.0000i 
 
Ejemplo: utilizando las funciones de números complejos definidas por Matlab, encontrar la suma de los 
4 vectores que se muestran en la tabla siguiente. 

F3  10 90N

F2  8 45N

F1  10 0N

Solución 
 
  suma_componentes_x = 10*cosd(0)+8*cosd(45)+10*cosd(90) 
suma_componentes_y = 10*sind(0)+8*sind(45)+10*sind(90) 
magnitud_resultante = sqrt(suma_componentes_x^2+suma_componentes_y^2) 
 
magnitud_resultante =     22.1421 
 
angulo_resultante = atand(suma_componentes_y/suma_componentes_x) 
angulo_resultante =    45 

Dr. Antonio Ramos Paz  23 
UMSNH  Tópicos de Matlab  FIE 

Funciones Numéricas 
 
fix    redondea hacia el elemento más cercano al cero   
 
ejemplo:    fix(0.6)  = 0   
 
fix(‐0.6) = 0 
 
fix(1.6) = 1 
 
floor  redondea hacia el entero más cercano al infinito negativo   
 
ejemplo:    floor(2.1) = 2 
 
      floor(‐2.9) = ‐3 
 
 
ceil    redondea hacia el infinito positivo 
 
ejemplo:    ceil(2.3) = 3   
 
ceil(2.99) = 3 
 
round  redondea hacia el entero más cercano   
 
ejemplo: 
round(2.3)  = 2 
 
round(4.5)   = 5             
 
rem  regresa el residuo de la división de sus argumentos  
 
ejemplo:  rem(2,2) = 0 
 
    rem(3,2) = 1 
 
sign  regresa el signo de la cantidad que se ingresa como argumento. 
 
ejemplo.  sign(‐1) = ‐1 
 
    sign(3) = 1 
 
    sign(0) = 0 
 
Manejo simbólico en Matlab 
 
Creación de Variables y expresiones simbólicas 
 
Con el objeto de crear variables simbólicas se utilizan el comando sym, por ejemplo: 
 
  x = sym(‘x’) 
  a = sym(‘alpha’) 
 
Consideremos la siguiente expresión 
 

Dr. Antonio Ramos Paz  24 
UMSNH  Tópicos de Matlab  FIE 

1 5
    
2
 
rho = sym(‘(1 + sqrt(2))/2’) 
 
consideremos la siguiente operación 
 
>> rho = sym('(1 + sqrt(5))/2')
  
rho = (1 + sqrt(5))/2 
  
  
>> f = rho^2‐rho‐1 
  
f = 
(1/2+1/2*5^(1/2))^2‐3/2‐1/2*5^(1/2) 
  
  
>> simplify(f) 
  
ans =0 
   
>> 
 
Evaluación de funciones simbólicas 
 
El comando subs se utiliza para evaluar una función simbólica en un valor constante o en otra variable. 
Por ejemplo, considere el siguiente ejemplo: 
 
 
>> syms x a 
 
>> f = x^3‐cos(x)+1 
  
f = x^3 ‐ cos(x) + 1 
  
>> y = subs(f,1) 
 
y = 1.4597 
 
>> y = subs(f,a) 
  
y = a^3 ‐ cos(a) + 1 
  
 
En  el  ejemplo  anterior  se  definen  dos  variables  simbólicas,  la  x   y  a .  Posteriormente  se  define  la 
función simbólica  f  x 3  cos x  1 . Una vez defina la función, ésta se evalúa en 1.0 dando un valor de 
1.4597. Finalmente se evalúa la función en a, dando como resultado  a 3  cos a  1  
 
Solución de ecuaciones 
 
Considérese la ecuación cuadrática: 
 
  ax 2  bx  c  0  
 
Si se desea encontrar el valor simbólico de s, puede utilizarse el comando solve. A continuación se 
muestra una secuencia de instrucciones a través de las cuales se encuentra la solución, 

Dr. Antonio Ramos Paz  25 
UMSNH  Tópicos de Matlab  FIE 

 
>> syms a b c x
 
>> solve('a*x^2+b*x+c=0',x) 
 
ans = 
  
 ‐(b + (b^2 ‐ 4*a*c)^(1/2))/(2*a) 
 ‐(b ‐ (b^2 ‐ 4*a*c)^(1/2))/(2*a) 
 
 
Lo que significa que existen dos soluciones para la ecuación, las cuales son: 
 
b  b 2  4ac
   
2a

b  b 2  4ac
   
2a
 
Si ahora se resuelve para  b se tiene  
 

solve('a*x^2+b*x+c=0',b) 
 
Dando como resultado, 
 
 ax 2  c
   
x
 
Aplicaciones al Cálculo Diferencial e Integral 
 
Consideremos ahora el cálculo de la derivada de la función  f  x   sen  ax  . La derivada de  f  x  puede 
obtenerse mediante el uso de la siguiente secuencia de instrucciones, 
 
>> syms a x
 
>> f = sin(a*x) 
  
f = sin(a*x) 
  
>> df = diff(f) 
  
df = cos(a*x)*a 
  
 
lo cual significa que la derivada de  f  x  es  f '  x   a cos  ax  . 
 
Si se quiere encontrar la derivada de la función con respecto a la variable  a  se tiene que, 
 
>> df = diff(f,a)
  
df = cos(a*x)*x 
  
 
Esto significa que la derivada de la función  f con respecto a la variable  a es  x cos  ax   
 
Consideremos el cálculo de la segunda derivada de una función  f  x   x 2  x  1 . Para realizar este 
cálculo se utiliza la siguiente secuencia de instrucciones. 
 

Dr. Antonio Ramos Paz  26 
UMSNH  Tópicos de Matlab  FIE 

>> syms x
>> f = x^2+x+1 
  
f = x^2+x+1 
  
>> d_1 = diff(f,x) 
  
d_1 = 2*x+1 
  
>> d_2 = diff(d_1,x) 
  
d_2 = 2 
   
>> d_2 = diff(f,x,2) 
  
d_2 = 2 
  
 
Limites 
 
 Consideremos el cálculo del siguiente límite 
 
cos  x  h   cos  x 
  lim  
h0 h
 
Para realizar este cálculo se propone la siguiente secuencia de instrucciones, 
 
 
>> syms h x 
>> dc = limit((cos(x+h)‐cos(x))/h,h,0) 
  
dc = 
  
‐sin(x) 
   
 
Lo cual significa que 
 
cos  x  h   cos  x 
  lim  senx    
h0 h
 
Resumen sobre límites 
 
Operación Matemática  Comando de Matlab
lim f  x    limit(f)
x 0

lim f  x    limit(f,x,a)
xa limit(f,a) 
lim f  x    limit(f,x,a,’left’)
x a

lim f  x    limit(f,x,a,’right’)
x a
 

Dr. Antonio Ramos Paz  27 
UMSNH  Tópicos de Matlab  FIE 

Integración 
 
Considérese ahora el cálculo de    x 2  3 x  5  dx  
 
Para realizar este cálculo se propone la siguiente secuencia de instrucciones, 
 
 
>> syms x 
 
>> f = x^2+3*x+5 
  
f = x^2+3*x+5 
  
>> int(f) 
  
ans =  1/3*x^3+3/2*x^2+5*x 
  
 
Por lo que se tiene que, 
   
x3 3x 2
x  3 x  5  dx    5x  C  
2
 
3 2
   
Resumen sobre integrales 
 
Operación Matemática  Comando de Matlab
n 1 int(x^2)
x
x 
n
  int(x^2,x)  
n 1
 /2 int(sin(2*x),0,pi/2)
 sin  2 x dx  1   int(sin(2*x),x,0,pi/2) 
0

g  cos  at  b    g = cos(a*t+b)
int(g) 
sin  at  b 
 g  t  dt 
int(g,t) 
 
a
 

Dr. Antonio Ramos Paz  28 
UMSNH  Tópicos de Matlab  FIE 

Programación en Matlab 
 
Existen dos clases de archivos M 
 
 Archivos de instrucciones 
 Archivos de funciones 
 
Características: 
 
  Archivos de Instrucciones 
 
o No aceptan argumentos de entrada ni regresan argumentos de salida. 
o Operan con datos de la hoja de trabajo 
o Son útiles para automatizar una serie de pasos que son realizados de manera 
común 
 
Archivos de funciones 
 
o Aceptan argumentos de entrada y regresan argumentos de salida 
o Las variables internas son locales 
 
Ejemplo de archivo de instrucciones 
 
 
% serie de instrucciones utilizadas para graficar la función seno en un 
% intervalo de tiempo de 0 a 2pi 
t = 0:0.01:2*pi 
y = sin(t); 
plot(t,y); 
 
 
Nota : el signo % se utiliza para colocar comentarios en el programa. 
 
Ejemplo de archivo de funciones 
 
 
% función que aceptan como argumentos dos valores a y b y regresa su 
% producto 
 
function c = producto(a,b) 
    c = a*b; 
 
 
Control de flujo 
 
Comando if, and elseif 
 
Este comando se utiliza cuando el flujo de un programa o una función dependen de una condición que 
puede ser falsa o verdadera.  
 
 
  if expresión_logica 
    Instrucciones 
  end 
 
 
Ejemplo: considere una función que devuelva el valor absoluto de una cantidad x. 
 
 
 

Dr. Antonio Ramos Paz  29 
UMSNH  Tópicos de Matlab  FIE 

Operadores de relación 
 
Estos  operadores  generalmente  acompañan  a  las  estructuras  de  selección  y  de  repetición  para 
especificar condiciones de relación entre dos o más elementos. 
 

==  igual 
>  Mayor que 
<  Menor que 
>=  Mayor o igual que 
<=  Menor o igual que 
~=  Diferente que 
 
 
 
 
 
Operadores lógicos 
 
Estos  operadores  generalmente  acompañan  a  las  estructuras  de  selección  y  de  repetición  para 
especificar condiciones lógicas entre dos o más elementos. 
 

and  y  & 
or  o  | 
 
 
Ejemplo: el siguiente programa determina si un número es par o impar 
 
 
numero = 10; 
if rem(numero,2)== 0 
    disp 'Es un numero par' 
else 
    disp 'Es un numero impar' 
end 
 
 
Consideremos el siguiente ejemplo: 
 
 
n = 4; 
if n<0 
    disp ('es un valor negativo'); 
elseif rem(n,2) == 0 
    disp ('es un valor positivo par'); 
else 
    disp ('es un valor positivo impar'); 
end 
 
 
El diagrama de flujo asociado con el código anterior se muestra a continuación, 
 

Dr. Antonio Ramos Paz  30 
UMSNH  Tópicos de Matlab  FIE 

Inicio

n=4

Si
Número
n<0
negativo

No

Si
Número
rem(n,2) == 0
positivo par

No
Número
positivo Fin
negativo
 
Comando switch 
 
El  comando  switch  se  utiliza  para  realizar  una  secuencia  de  instrucciones  en  base  a  una  selección  de 
varias alternativas. 
 
La sintaxis de la instrucción switch 
 
 
switch expresión 
  case valor_1 
    instrucciones 
  case valor_2 
    instrucciones 
 
  case valor_n 
    instrucciones 
  otherwise 
    instrucciones 
end 
 
 
 
 
Ejemplo: consideremos un programa que  reciba una calificación de 5 a 10 y muestre en pantalla una 
palabra asociada con la calificación, 
 
  10   =>   Excelente,   9  =>  Muy bien 
  8  =>  Bien,    7  =>  Regular 
  6  =>  Suficiente,  5  =>  Muy mal 
 
 
calificacion = 6; 
switch calificacion 
    case 5 
        disp('Muy mal'); 
    case 6 
        disp('Suficiente'); 
    case 7 
        disp('Regular'); 
    case 8 
        disp('Bien'); 
    case 9 
        disp('Muy Bien'); 
    case 10 
        disp('Excelente'); 
    otherwise 
        disp('Valor fuera de rango'); 
End 
 

Dr. Antonio Ramos Paz  31 
UMSNH  Tópicos de Matlab  FIE 

Estructuras de repetición 
 
for 
 
La  estructura  de  repetición  for  repite  una  secuencia  de  instrucciones  un  número  predeterminado  de 
veces. Su sintaxis es, 
 
  for indice=inicio:incremento:fin 
    instrucciones 
  end 
 
 
el incremento por default es 1. 
 
Por ejemplo, si se desea almacenar en un vector x los valores de 1 a 10 existen diversas alternativas, una 
de ellas es por medio de ciclo, tal y como se muestra en el siguiente código 
 

for i=1:10 
    x(i) = i; 
end 
 
while 
 
La  estructura  de  repetición  while  repite  una  secuencia  de  instrucciones  en  tanto  una  expresión  es 
verdadera. 
 
La sintaxis de la estructura de repetición while es, 
 
 
  while expresión 
    instrucciones 
  end 
 
 
Ejemplo: ahora utilicemos la instrucción while para llenar el arreglo x con los elementos del 1 al 10. 
 

i = 1; 
while i<=10 
    x(i) = i; 
    i = i +1; 
end 
 
break 
 
La instrucción break termina la ejecución de un ciclo for o while. 
 
Consideremos un juego, en el cual el usuario intentará adivinar un número entre 1 y 100.  
 
 
intentos = 10; 
numero = round(rand()*100+1); 
for i=1:intentos 
    valor = input('Dame la aproximación:'); 
    if valor == numero 
        disp 'Felicidades' 
        disp 'Atinaste en ' 
        i 
        break 
    else 
        if valor > numero 
            disp 'mas pequeño' 
        else 

Dr. Antonio Ramos Paz  32 
UMSNH  Tópicos de Matlab  FIE 

            disp 'mas grande'
        end 
    end 
End 
 
return 
 
La  instrucción  return  termina  la  ejecución  de  una  secuencia  de  comandos  y  regresa  el  control  a  la 
función que invocó a la secuencia de comandos o a la línea de comandos. 
 
Partes de un archivo de funciones 
 
o Línea de definición de la función 
o Línea H1 
o Texto de ayuda 
o Cuerpo de la función 
o Comentarios 
 
Línea de definición de la función 
 
function y = promedio(x)

Argumento de entrada
Nombre de la función
Argumento de salida
Palabra reservada
 
 
Si la función tiene varios valores de salida, éstos deben ser especificados entre corchetes cuadrados, por 
ejemplo, consideremos una función que recibe como argumento dos números a y b y da como resultado 
su suma, su producto, su diferencia y su cociente, 
 
 
 
function [suma, resta, producto, cociente] = operaciones(a,b) 
    suma = a + b; 
    resta = a ‐ b; 
    producto = a*b; 
    cociente = a/b; 
 
 
Ejemplo: realizar una función que convierta grados Fahrenheit en grados Celsius 
 
Solución 
 
5
Se sabe que:  TC  TF  32 
9
 
Por lo que se propone la siguiente función 

 
% funcion que convierte una temperatura expresada en grados Fahrenheit en grados centigrados 
 
function celsius = far_en_cel(fahrenheit) 
    celsius = 5/9*(fahrenheit‐32); 
 
 

Dr. Antonio Ramos Paz  33 
UMSNH  Tópicos de Matlab  FIE 

Ejemplo de utilización 
 

>> a = far_en_cel(78) 
 
a =   25.5556 
 
 
Ejemplo:  realizar  un  programa  que  contenga  una  función  que  sea  capaz  de  determinar  la  magnitud  y 
dirección de un vector expresado en forma rectangular. 
 
Solución 
 
Se sabe que la magnitud de un vector expresado en forma rectangular es:  M  Cx2  C y2  
 
 Cy 
Además de que la dirección de un vector expresado en forma rectangular es:    tan 1   
 Cx 
Por lo que se propone la siguiente función en matlab, 
 
 
% funcion que determina la magnitud y dirección de un vector 
% expresado en forma rectangular 
 
function [magnitud direccion] = mag_dir(cx,cy) 
    magnitud = sqrt(cx^2+cy^2); 
    direccion = 180/pi*(atan(cy/cx)); 
 
 
Ejemplo de aplicación 
 
>> [magnitud direccion] = mag_dir(1,1) 
 
magnitud =    1.4142 
 
direccion =    45 
 
Ejemplo:  realizar  una  función  que  realice  la  gráfica  de  una  función  polinomial  de  orden  n  en  el  rango 
especificado. La función deberá de recibir como parámetros un vector P que contenga los coeficientes 
del polinomio así como el dominio de la función. 
 
Se propone el siguiente código, 
 
 
% funcion que grafica una funcion polinomial 
function grafica_polinomio(p,xmin,xmax) 
[filas columnas] = size(p); 
puntos = 1000; 
y = zeros(puntos,1); 
paso = (xmax‐xmin)/puntos; 
x = xmin:paso:xmax‐paso; 
for i=1:puntos 
    for j=1:columnas‐1 
        y(i) = y(i) + p(j)*x(i)^(columnas‐j); 
    end 
    y(i) = y(i) + p(columnas); 
end 
plot(x,y) 
grid on 
xlabel('x'); 
ylabel('y'); 
 
 

Dr. Antonio Ramos Paz  34 
UMSNH  Tópicos de Matlab  FIE 

Ejemplo de aplicación. 
 
Considérese la gráfica de la función  f  x   x 2  x  6  
 

>> p = [1 ‐1 ‐6] 
 
p =     1    ‐1    ‐6 
 
>> grafica_polinomio(p,‐3,4) 
 
 
Dando como resultado la gráfica que se muestra en la figura siguiente. 
6

0
y

-2

-4

-6

-8
-3 -2 -1 0 1 2 3 4
x
 
 
Ejemplo:  realizar  una  función  que  muestre  el  comportamiento  de  un  objeto  que  es  lanzado  con  una 
velocidad inicial  v0  . La función debe de recibir como parámetros: v0 y theta. 
 
Solución 
 
2vo sen
Se sabe que el tiempo de vuelo está dada por:  tvuelo   
g
 
La posición en  x está dada por:      x  t    vo cos   t  
 
1 2
La posición en  y está dada por:      y  t    vo sen  t  gt  
2
 
Se propone la siguiente función 
 
 
% funcion que realiza la gráfica de la posición de un objeto que es lanzado 
% en tiro parabólico 
 
function grafica_tiro_parabolico(vo,theta) 
    g = 9.81; 
    theta = (pi/180)*theta; 
    tiempo_vuelo = 2*vo*sin(theta)/g; 
    paso = tiempo_vuelo/512; 
    t = 0:paso:tiempo_vuelo‐paso; 
    x = vo*cos(theta)*t; 
    y = vo*sin(theta)*t‐0.5*g*t.^2; 
    plot(x,y); 
    grid on 
    xlabel('x'); 
    ylabel('y'); 
     
 
 

Dr. Antonio Ramos Paz  35 
UMSNH  Tópicos de Matlab  FIE 

Ejemplo de aplicación 
 
 
grafica_tiro_parabolico(15,60); 
 
 
Dando como resultado la gráfica que se muestra en la figura siguiente, 
9

y
4

0
0 2 4 6 8 10 12 14 16 18 20
x
 
Ejemplo:  realizar  una  función  que  calcule  la  traza  de  una  matriz  de  n  n .  La  traza  de  una  matriz 
cuadrada  A  es la suma de los elementos de su diagonal. 
 
Solución 
 
Se propone la siguiente función 
 
 
% funcion que calcula la traza de una matriz 
 
function tr = traza(A) 
[filas columnas] = size(A); 
 
if (filas == columnas) 
    tr = A(1,1); 
    for i=2:columnas 
        tr = tr+A(i,i); 
    end 
else 
    disp 'No es una matriz cuadrada' 
end 
 
Ejemplo de aplicación 
 
 
>> A = [1 0 0;0 2 0;0 0 3] 
 
A = 
 
     1     0     0 
     0     2     0 
     0     0     3 
 
>> traza(A) 
 
ans =     6 
 
 
 

Dr. Antonio Ramos Paz  36 
UMSNH  Tópicos de Matlab  FIE 

Ejercicios propuestos Unidad 1 
 
1. Realizar una función que convierta grados Celsius en grados Fahrenheit 
 
2. Hacer  una  función  que  determine  la  distancia  entre  dos  puntos  de  coordenadas   x1 , y1  y 
 x2 , y2  . 
 
3. Hacer una función que determine el mayor de tres números a, b, c. 
 
4. Realizar una función que devuelva la suma de los elementos de una matriz. 
 
5. Realizar una función que convierta grados sexagesimales en radianes. 
 
6. Realizar una función que convierta radianes en grados sexagesimales. 
 
7. Realizar una función que determine el promedio de los elementos contenidos en un vector. 
 
8. Realizar una función que determine la desviación estándar de los elementos contenidos en un 
vector. 
 
9. Realizar una función que encuentre el valor más pequeño dentro de los elementos contenidos 
en un vector. 
 
10. Realizar una función que reciba una matriz cuadrada devuelva cero si la matriz es no singular y 
uno si la matriz es singular. 
 
11. Diseñar una interfaz gráfica que permita hacer las operaciones de suma, resta, multiplicación y 
división de números complejos expresados en forma polar. 
 
12. Diseñar  una  interfaz  gráfica  que  permita  hacer  una  conversión  de  una  configuración  de 
resistencias en delta a estrella y viceversa. 
 
13. Diseñar una interfaz gráfica que determine la altura máxima, el alcance horizontal máximo y el 
tiempo de vuelo de un proyectil que es disparado con una rapidez inicial  v0 y un ángulo   . 
 
14. Diseñar  una  interfaz  gráfica  que  permita  realizar  la  operación  de  producto  punto  y  producto 
cruz de dos vectores de tres dimensiones. 
 
15. Diseñar una interfaz gráfica que muestre el comportamiento, en un tiempo t, de la corriente en 
un circuito RL serie excitado por una fuente de voltaje V. Recuérdese que la corriente está dada 
por:  i  t   1  e  Rt / L   
V
R
 
16. Realizar una interfaz gráfica que calcule la fuerza de atracción o repulsión entre dos cargas,  q1  
y  q2 ,  en  un  espacio  tridimensional.  Recuérdese  que  la  fuerza  de  atracción  o  repulsión  está 
kq1q2
dada por:  F  a 
r2
 
Donde  a es  el  vector  de  dirección,  r es  la  distancia  entre  las  cargas  y  k es  la  constante  de 
coulomb. 
 
1
17. Realizar un programa que calcule la matriz de Hilbert de orden n. Donde  hij   
i  j 1
 

Dr. Antonio Ramos Paz  37 
UMSNH  Tópicos de Matlab  FIE 

Autoevaluación unidad 1 
 
1. Realizar una función que determine la magnitud de un vector expresado en forma rectangular. 
 
    M  x2  y2  
 
2. Realizar una función que convierta grados Celsius en grados Fahrenheit 
 
9
    TF  C  32  
5
3. Hacer  una  función  que  determine  la  distancia  entre  dos  puntos  de  coordenadas   x1 , y1  y 
 x2 , y2  . 
 
d  x2  x1    y2  y1 
2 2
     
 
4. Hacer una función que determine el mayor de tres números  a ,  b ,  c . 
 
 
5. Realizar una función que devuelva la suma de los elementos de una matriz de  n  m . 
 
6. Realizar  una  función  que  calcule  el  producto  de  dos  matrices.  La  función  recibirá  como 
parámetro  dos  matrices  y  devolverá  el  producto.  No  se  deberá  utilizar  directamente  el 
producto de dos matrices. 
 
7. Realizar  una  función  que  determine  el  promedio  de  los  datos  contenidos  en  una  matriz. 
Recordar que el promedio de un número n de elementos se calcula como 
 
n

x i
    x i 1
 
n
 
8. Realizar una función que devuelva el valor más pequeño y el valor más grande de los elementos 
contenidos en un vector. 
 
9. Diseñar una interfaz gráfica que realice las operaciones de: 
   
a) Suma 
b) Resta 
c) Producto 
d) Inversa 
e) Transpuesta 
 
De dos matrices de dos por dos. 
 
10. Diseñar  una  interfaz  gráfica  que  realice  el  cálculo  de  la  media,  mediana,  moda,  varianza  y 
desviación estándar de un conjunto de  n  datos contenidos en un archivo de texto. 
 
11. Diseñar una interfaz gráfica que realice la conversión de una conexión de resistencias en delta a 
estrella y viceversa. 
 
 

Dr. Antonio Ramos Paz  38