Está en la página 1de 103

Taller de Programación en MATLAB

Fayber Acosta Pardo

Universidad de los Andes

March 3, 2023
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Metodologı́a de clase

Cada clase tendrá como objetivo la introducción de algún concepto de


programación. Se explicará mediante ejemplos la funcionalidad de los comandos, ası́
como sus variaciones.

Al final de la clase habrán 20 minutos para que los estudiantes resuelvan ejercicios
que les permitirán afianzar sus conocimientos.

En algunas clases previamente seleccionadas, en lugar de un espacio de práctica, en


los últimos 25 minutos habrá una prueba sobre alguno de los puntos del taller de la
clase anterior (pueden existir pequeñas modificaciones en el enuncidado).

Se espera la participación activa de los estudiantes en las sesiones.

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 2 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Pruebas

Las pruebas se realizarán en las siguientes fechas. A excepción del examen final que se
presentará en parejas, las pruebas se resuelven de manera individual.

Taller a evaluar Evaluación Valor


Clase 3 - Feb 7 Feb 14 (6:20 p.m.) 15%
Clase 7 - Mar 7 Mar 14 (6:20 p.m.) 15%
Clase 9 - Mar 28 Abr 11 (6:20 p.m.) 15%
Clase 12 - Abr 25 May 2 (6:20 p.m.) 15%
Clase 15 - May 16 May 23 (6:20 p.m.) 15%
Examen final May 23 (11:59 p.m.) 25%

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 3 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Contenido

1 Clase I: Principios de programación

2 Clase II: Tipos de datos

3 Clase III: Operaciones básicas con matrices

4 Clase IV: Condicionales y ciclos

5 Clase V: Funciones I

6 Clase VI: Funciones II [Taller]

7 Clase VII: Funciones recursivas

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 4 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Lenguajes de programación (LP)

¿Qué son?

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 5 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Lenguajes de programación (LP)

¿Qué son?
Son la manera mediante la cual programador y máquina se comunican.

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 5 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Lenguajes de programación (LP)

¿Qué son?
Son la manera mediante la cual programador y máquina se comunican.
Las máquinas solo entienden el lenguaje binario o de bits (0 y 1). Decimal-Binario

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 5 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Lenguajes de programación (LP)

¿Qué son?
Son la manera mediante la cual programador y máquina se comunican.
Las máquinas solo entienden el lenguaje binario o de bits (0 y 1). Decimal-Binario

Se trata de una serie de instrucciones que permiten llevar a cabo una tarea (de manera
sofisticada algoritmos).

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 5 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Lenguajes de programación (LP)

¿Qué son?
Son la manera mediante la cual programador y máquina se comunican.
Las máquinas solo entienden el lenguaje binario o de bits (0 y 1). Decimal-Binario

Se trata de una serie de instrucciones que permiten llevar a cabo una tarea (de manera
sofisticada algoritmos).
Piense por ejemplo en enseñarle a sumar a la máquina. Hacerlo la primera vez fue
costoso, hoy ya existen rutinas que lo hacen de manera automática.

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 5 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Lenguajes de programación (LP)

¿Qué son?
Son la manera mediante la cual programador y máquina se comunican.
Las máquinas solo entienden el lenguaje binario o de bits (0 y 1). Decimal-Binario

Se trata de una serie de instrucciones que permiten llevar a cabo una tarea (de manera
sofisticada algoritmos).
Piense por ejemplo en enseñarle a sumar a la máquina. Hacerlo la primera vez fue
costoso, hoy ya existen rutinas que lo hacen de manera automática.
¿Cómo se clasifican?

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 5 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Lenguajes de programación (LP)

¿Qué son?
Son la manera mediante la cual programador y máquina se comunican.
Las máquinas solo entienden el lenguaje binario o de bits (0 y 1). Decimal-Binario

Se trata de una serie de instrucciones que permiten llevar a cabo una tarea (de manera
sofisticada algoritmos).
Piense por ejemplo en enseñarle a sumar a la máquina. Hacerlo la primera vez fue
costoso, hoy ya existen rutinas que lo hacen de manera automática.
¿Cómo se clasifican?
Existen varias clasificaciones. Lenguajes interpretados vs. compilados. Estos últimos
son aptos para un solo sistema operativo. En un lenguaje interpretado (como Matlab),
el programa ejecuta el código en tiempo real, sin ensamblarlo (traducir a lenguaje de
máquina).

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 5 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Lenguajes de programación (LP)

¿Qué son?
Son la manera mediante la cual programador y máquina se comunican.
Las máquinas solo entienden el lenguaje binario o de bits (0 y 1). Decimal-Binario

Se trata de una serie de instrucciones que permiten llevar a cabo una tarea (de manera
sofisticada algoritmos).
Piense por ejemplo en enseñarle a sumar a la máquina. Hacerlo la primera vez fue
costoso, hoy ya existen rutinas que lo hacen de manera automática.
¿Cómo se clasifican?
Existen varias clasificaciones. Lenguajes interpretados vs. compilados. Estos últimos
son aptos para un solo sistema operativo. En un lenguaje interpretado (como Matlab),
el programa ejecuta el código en tiempo real, sin ensamblarlo (traducir a lenguaje de
máquina).
Lenguajes de alto vs de bajo nivel. Los programas que usamos los no programadores
son lenguajes de alto nivel que ya incorporan rutinas.

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 5 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Lenguajes de programación (LP)

¿Qué son?
Son la manera mediante la cual programador y máquina se comunican.
Las máquinas solo entienden el lenguaje binario o de bits (0 y 1). Decimal-Binario

Se trata de una serie de instrucciones que permiten llevar a cabo una tarea (de manera
sofisticada algoritmos).
Piense por ejemplo en enseñarle a sumar a la máquina. Hacerlo la primera vez fue
costoso, hoy ya existen rutinas que lo hacen de manera automática.
¿Cómo se clasifican?
Existen varias clasificaciones. Lenguajes interpretados vs. compilados. Estos últimos
son aptos para un solo sistema operativo. En un lenguaje interpretado (como Matlab),
el programa ejecuta el código en tiempo real, sin ensamblarlo (traducir a lenguaje de
máquina).
Lenguajes de alto vs de bajo nivel. Los programas que usamos los no programadores
son lenguajes de alto nivel que ya incorporan rutinas.
¿Para qué sirven?

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 5 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Lenguajes de programación (LP)

¿Qué son?
Son la manera mediante la cual programador y máquina se comunican.
Las máquinas solo entienden el lenguaje binario o de bits (0 y 1). Decimal-Binario

Se trata de una serie de instrucciones que permiten llevar a cabo una tarea (de manera
sofisticada algoritmos).
Piense por ejemplo en enseñarle a sumar a la máquina. Hacerlo la primera vez fue
costoso, hoy ya existen rutinas que lo hacen de manera automática.
¿Cómo se clasifican?
Existen varias clasificaciones. Lenguajes interpretados vs. compilados. Estos últimos
son aptos para un solo sistema operativo. En un lenguaje interpretado (como Matlab),
el programa ejecuta el código en tiempo real, sin ensamblarlo (traducir a lenguaje de
máquina).
Lenguajes de alto vs de bajo nivel. Los programas que usamos los no programadores
son lenguajes de alto nivel que ya incorporan rutinas.
¿Para qué sirven?
Automatizan procedimientos que pueden ser tediosos o imposibles llevarlos a cabo
manualmente.

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 5 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Lenguajes de programación (LP)

¿Qué son?
Son la manera mediante la cual programador y máquina se comunican.
Las máquinas solo entienden el lenguaje binario o de bits (0 y 1). Decimal-Binario

Se trata de una serie de instrucciones que permiten llevar a cabo una tarea (de manera
sofisticada algoritmos).
Piense por ejemplo en enseñarle a sumar a la máquina. Hacerlo la primera vez fue
costoso, hoy ya existen rutinas que lo hacen de manera automática.
¿Cómo se clasifican?
Existen varias clasificaciones. Lenguajes interpretados vs. compilados. Estos últimos
son aptos para un solo sistema operativo. En un lenguaje interpretado (como Matlab),
el programa ejecuta el código en tiempo real, sin ensamblarlo (traducir a lenguaje de
máquina).
Lenguajes de alto vs de bajo nivel. Los programas que usamos los no programadores
son lenguajes de alto nivel que ya incorporan rutinas.
¿Para qué sirven?
Automatizan procedimientos que pueden ser tediosos o imposibles llevarlos a cabo
manualmente.
En la actualidad todas las áreas del conocimiento hacen uso de programas informáticos.

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 5 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

¿Qué son los IDE?

Los entornos de desarrollo integrado (IDE por sus siglas en inglés) son muy
populares en la actualidad.
Los IDE ofrecen una serie de herramientas en el mismo lugar. Por ejemplo, un editor
de código fuente, funciones de autocompletado, gestión de conexiones a bases de
datos, entre otros.
Matlab ofrece un IDE en el cual trabajaremos.
Si están familiarizados con R, notarán que los usuarios trabajan con R Studio para
facilitar su trabajo.

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 6 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Identación o tabulación

Se conoce identación a la práctica de dejar espacios o tabulaciones entre las lı́neas


de código.
No siempre es necesario, pero visualmente ayudará a que el código sea más claro.
Dentro de los ciclos o funciones la identación es necesaria para que el código no
arroje errores.
Ejemplo:
Hola a todos
Bienvenidos al taller de programación en Matlab
Este es un entorno de aprendizaje seguro

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 7 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Debugging

Su nombre procede de la forma en que se conocen los errores en la programación,


bugs.
Por lo tanto el debugging hace referencia al proceso de encontrar y resolver errores
en el código.
Cada programa tiene rutinas que pueden hacer más difı́cil o fácil identificar los
errores.
En cualquier caso, el programador debe tener paciencia para solucionar el error.

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 8 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Matlab

Matrix Laboratory.
Es un lenguaje de programación desarrollado por MathWorks.
FORTRAN wrapping.
Año de lanzamiento: 1984 (casi 4 décadas).
En 2020, MATLAB tiene alrededor de 4 millones de usuarios en el mundo.
Instalaciones de software en más de 100.000 empresas, gobiernos y sitios
universitarios.
Sistema operativo, Microsoft Windows, Mac OS, Linux.
Los procedimientos de Matlab se complementan con Toolboxes.

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 9 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Ventajas y desventajas

Ventajas Desventajas

Fácil de usar. Licencia privada


Funciona en cualquier sistema Velocidad en la ejecución de código
operativo. Tamaño de la comunidad de apoyo
Cuenta con un gran número de Espacio ocupado en el computador
bibliotecas y son especializadas para
modelos matemáticos.
Los procedimientos son similares a
otros lenguajes de programación de
mayor difusión.
Es posible manejar un gran número
de datos.

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 10 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Consola

Principales ventanas Comandos de inicio


Current Folder Prompt ” >> ”
Command Window comments: % y %%
Editor (m files) Correr sección del script F9
Workspace Correr todo el script F5
Command History. help.
doc.
clear all.
clc / home.
who / whos.
pi, i, inf, -inf, exp(1).
NaN.

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 11 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Principales tipos de datos

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 12 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Valores numéricos

Se usan para guardar valores numéricos

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 13 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Valores numéricos

Se usan para guardar valores numéricos


Se crean usando corchetes [ ]

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 13 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Valores numéricos

Se usan para guardar valores numéricos


Se crean usando corchetes [ ]
Escalares (1×1)

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 13 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Valores numéricos

Se usan para guardar valores numéricos


Se crean usando corchetes [ ]
Escalares (1×1)
Vectores fila (1×n) y columna (n×1)

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 13 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Valores numéricos

Se usan para guardar valores numéricos


Se crean usando corchetes [ ]
Escalares (1×1)
Vectores fila (1×n) y columna (n×1)
Matrices (m×n)

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 13 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Valores numéricos

Se usan para guardar valores numéricos


Se crean usando corchetes [ ]
Escalares (1×1)
Vectores fila (1×n) y columna (n×1)
Matrices (m×n)
Los escalares no necesitan usar corchetes

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 13 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Valores numéricos

Se usan para guardar valores numéricos


Se crean usando corchetes [ ]
Escalares (1×1)
Vectores fila (1×n) y columna (n×1)
Matrices (m×n)
Los escalares no necesitan usar corchetes
Las columnas se separan con comas (,) o espacios

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 13 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Valores numéricos

Se usan para guardar valores numéricos


Se crean usando corchetes [ ]
Escalares (1×1)
Vectores fila (1×n) y columna (n×1)
Matrices (m×n)
Los escalares no necesitan usar corchetes
Las columnas se separan con comas (,) o espacios
Las filas se separan con punto y comas (;)

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 13 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Valores numéricos

escalar = 5

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 14 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Valores numéricos

escalar = 5
 
vector fila = 1 2 3

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 14 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Valores numéricos

escalar = 5
 
vector fila = 1 2 3
 
vector fila = 1 , 2 , 3

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 14 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Valores numéricos

escalar = 5
 
vector fila = 1 2 3
 
vector fila = 1 , 2 , 3
" #
1
vector columna = 2
3

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 14 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Valores numéricos

escalar = 5
 
vector fila = 1 2 3
 
vector fila = 1 , 2 , 3
" #
1
vector columna = 2
3
"
1 2 3
#
matriz = 4 5 6
7 8 9

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 14 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Valores lógicos (booleans)

» var1 = true

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 15 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Valores lógicos (booleans)

» var1 = true
var1 = 1

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 15 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Valores lógicos (booleans)

» var1 = true
var1 = 1

» var2 = false

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 15 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Valores lógicos (booleans)

» var1 = true
var1 = 1

» var2 = false
var2 = 0

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 15 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Valores lógicos (booleans)

» var1 = true
var1 = 1

» var2 = false
var2 = 0

» var3 = var1 + 1

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 15 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Valores lógicos (booleans)

» var1 = true
var1 = 1

» var2 = false
var2 = 0

» var3 = var1 + 1
var3 = 2

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 15 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Valores lógicos (booleans)

» var1 = true » var4 = var2 + 1


var1 = 1

» var2 = false
var2 = 0

» var3 = var1 + 1
var3 = 2

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 15 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Valores lógicos (booleans)

» var1 = true » var4 = var2 + 1


var1 = 1 var4 = 1

» var2 = false
var2 = 0

» var3 = var1 + 1
var3 = 2

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 15 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Valores lógicos (booleans)

» var1 = true » var4 = var2 + 1


var1 = 1 var4 = 1

» var2 = false » var3 = 5 > 4


var2 = 0

» var3 = var1 + 1
var3 = 2

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 15 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Valores lógicos (booleans)

» var1 = true » var4 = var2 + 1


var1 = 1 var4 = 1

» var2 = false » var3 = 5 > 4


var2 = 0 var5 = 1

» var3 = var1 + 1
var3 = 2

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 15 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Strings y Characters

Se crean con comillas dobles (”).

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 16 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Strings y Characters

Se crean con comillas dobles (”).


Entienden el texto como un solo
elemento. Se usan para nombrar
archivos o etiquetas.

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 16 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Strings y Characters

Se crean con comillas dobles (”).


Entienden el texto como un solo
elemento. Se usan para nombrar
archivos o etiquetas.
Es posible convertir vectores
numéricos a texto string(A).

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 16 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Strings y Characters

Se crean con comillas dobles (”).


Entienden el texto como un solo
elemento. Se usan para nombrar
archivos o etiquetas.
Es posible convertir vectores
numéricos a texto string(A).
Ejemplo:

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 16 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Strings y Characters

Se crean con comillas dobles (”).


Entienden el texto como un solo
elemento. Se usan para nombrar
archivos o etiquetas.
Es posible convertir vectores
numéricos a texto string(A).
Ejemplo:
» str = ”Matlab”

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 16 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Strings y Characters

Se crean con comillas dobles (”).


Entienden el texto como un solo
elemento. Se usan para nombrar
archivos o etiquetas.
Es posible convertir vectores
numéricos a texto string(A).
Ejemplo:
» str = ”Matlab”
size: 1×1

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 16 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Strings y Characters

Se crean con comillas dobles (”). Se crean con comillas simples (’).
Entienden el texto como un solo
elemento. Se usan para nombrar
archivos o etiquetas.
Es posible convertir vectores
numéricos a texto string(A).
Ejemplo:
» str = ”Matlab”
size: 1×1

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 16 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Strings y Characters

Se crean con comillas dobles (”). Se crean con comillas simples (’).
Entienden el texto como un solo Entienden cada caracter del texto
elemento. Se usan para nombrar como un elemento. Ası́ es más fácil
archivos o etiquetas. acceder a un caracter especı́fico.
Es posible convertir vectores
numéricos a texto string(A).
Ejemplo:
» str = ”Matlab”
size: 1×1

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 16 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Strings y Characters

Se crean con comillas dobles (”). Se crean con comillas simples (’).
Entienden el texto como un solo Entienden cada caracter del texto
elemento. Se usan para nombrar como un elemento. Ası́ es más fácil
archivos o etiquetas. acceder a un caracter especı́fico.
Es posible convertir vectores Es posible convertir vectores
numéricos a texto string(A). numéricos a texto char(A)
Ejemplo:
» str = ”Matlab”
size: 1×1

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 16 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Strings y Characters

Se crean con comillas dobles (”). Se crean con comillas simples (’).
Entienden el texto como un solo Entienden cada caracter del texto
elemento. Se usan para nombrar como un elemento. Ası́ es más fácil
archivos o etiquetas. acceder a un caracter especı́fico.
Es posible convertir vectores Es posible convertir vectores
numéricos a texto string(A). numéricos a texto char(A)
Ejemplo: Ejemplo:
» str = ”Matlab”
size: 1×1

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 16 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Strings y Characters

Se crean con comillas dobles (”). Se crean con comillas simples (’).
Entienden el texto como un solo Entienden cada caracter del texto
elemento. Se usan para nombrar como un elemento. Ası́ es más fácil
archivos o etiquetas. acceder a un caracter especı́fico.
Es posible convertir vectores Es posible convertir vectores
numéricos a texto string(A). numéricos a texto char(A)
Ejemplo: Ejemplo:
» str = ”Matlab” » char = ’Matlab’
size: 1×1

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 16 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Strings y Characters

Se crean con comillas dobles (”). Se crean con comillas simples (’).
Entienden el texto como un solo Entienden cada caracter del texto
elemento. Se usan para nombrar como un elemento. Ası́ es más fácil
archivos o etiquetas. acceder a un caracter especı́fico.
Es posible convertir vectores Es posible convertir vectores
numéricos a texto string(A). numéricos a texto char(A)
Ejemplo: Ejemplo:
» str = ”Matlab” » char = ’Matlab’
size: 1×1 size: 1×6

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 16 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Arreglos

Pueden tener cualquier dimensión

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 17 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Arreglos

Pueden tener cualquier dimensión


Admiten texto y números conjuntamente

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 17 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Arreglos

Pueden tener cualquier dimensión


Admiten texto y números conjuntamente
Se crean usando llaves { }

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 17 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Arreglos

Pueden tener cualquier dimensión


Admiten texto y números conjuntamente
Se crean usando llaves { }
(
1 2 3
)
arreglo = a b c
[7, 8, 9] 8 9

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 17 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Estructuras

Agrupa datos relacionados mediante contenedores de datos denominados campos.

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 18 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Estructuras

Agrupa datos relacionados mediante contenedores de datos denominados campos.


Es capaz de almacenar cualquier tipo de información

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 18 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Estructuras

Agrupa datos relacionados mediante contenedores de datos denominados campos.


Es capaz de almacenar cualquier tipo de información
Se accede a cada campo de la estructura usando un punto (.) seguido del nombre
de la estructura.

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 18 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Estructuras

Agrupa datos relacionados mediante contenedores de datos denominados campos.


Es capaz de almacenar cualquier tipo de información
Se accede a cada campo de la estructura usando un punto (.) seguido del nombre
de la estructura.
Ejemplo: La estructura s se conforma de dos campos: a y b.
s.a = 1 
s.b = A B C

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 18 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Funciones - Lenguaje simbólico

Las funciones permiten automatizar procedimientos de acuerdo a la necesidad del


programador. Son como nuevos comandos.

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 19 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Funciones - Lenguaje simbólico

Las funciones permiten automatizar procedimientos de acuerdo a la necesidad del


programador. Son como nuevos comandos.
El lenguaje simbólico por su lado permite realizar operaciones algebraicas. Ası́ X deja
de tener un valor numérico o de texto especı́fico y se convierte en un valor general.

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 19 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Tablas

Son arreglos de información que permiten realizar operaciones sobre sus columnas y
filas.

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 20 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Tablas

Son arreglos de información que permiten realizar operaciones sobre sus columnas y
filas.
Es el entorno más adecuado para el análisis de datos.

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 20 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Contenido

1 Clase I: Principios de programación

2 Clase II: Tipos de datos

3 Clase III: Operaciones básicas con matrices

4 Clase IV: Condicionales y ciclos

5 Clase V: Funciones I

6 Clase VI: Funciones II [Taller]

7 Clase VII: Funciones recursivas

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 21 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Tipos de datos usados en la clase

Escalares y Vectores
ans
El nombre debe empezar con una letra del alfabeto. Con un máximo de ,63 caracteres
de extensión
MATLAB es sensible en el uso de mayúsculas y minı́sculas.
Potencias, después las multiplicaciones y divisiones y, finalmente, las sumas y restas.
Operaciones de igual prioridad se evalúan de izquierda a derecha.
A partir de vectores es posible construir matrices.
Matrices
zeros (nxm), ones (nxm), eye (n), magic (n), rand(nxm).
A partir de matrices es posible extraer vectores y escalares.
Arreglos
Permiten construir ’matrices’ con números, cadena de caracteres, matrices, etc.
A diferencia de las matrices se abren y cierran con { }.
Valores lógicos
Son elementos que solo toman dos valores: 0 y 1.
Son útiles para realizar pruebas lógicas entre los datos.

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 22 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Formatos

Formato Descripción Ejemplo


short 4 decimales 1.3333
long 15 decimales 1.333333333333333
bank 2 decimales 1.33
short e Not. cientı́fica 4 decimales 1.3333e+00
short g Not. cientı́fica o decimal, dependiendo del valor 1.3333
long e Not. cientı́fica 15 decimales 1.333333333333333e+00
long g Not. cientı́fica o decimal, dependiendo del valor 1.33333333333333
loose Introduce lı́neas en blanco citadas 1.33333333333333
compact Elimina lı́neas en blanco citadas 1.33333333333333
rat cocientes de enteros 4/3

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 23 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Taller

1 Cree una variable en el que guarde su edad en años. Usando dicha variable, cree una
nueva variable que guarde su edad en meses. Posteriormente cree una variable que
guarde su edad en dı́as (recuerde los años bisiestos).
2 Cree una variable que guarde una cantidad en libras. Haciendo uso de esa variable,
cree una nueva variable que guarde dicho peso en kilogramos. Recuerde que 1
kilogramo equivale a 2.2 libras.
3 Cree un vector columna con las primeras 6 potencias de 2 (inicie desde 0). Cree
ahora una variable lógica que evalúe si cada potencia es mayor que el promedio de
las primeras 6 potencias.
4 Cree una matriz (M) 10x 4 que de la siguiente manera:
a. La primera columna debe tener los 10 primeros números pares.
b. La segunda columna debe tener los 10 primeros números impares.
c. La tercera columna debe tener los 10 primeros números primos.
d. La cuarta columna debe tener los números que incrementen de tres en tres empezando
por 8.

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 24 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Taller

5 Dada la matriz (M) del punto anterior. Obtenga el vector de la segunda fila que
tenga columnas en posiciones pares. Obtenga una submatriz compuesta por las
columnas 2 y 3 de M y sus últimas 5 filas.
6 Cree una tabla con los datos personales (nombre, apellidos, código, programa)
imaginarios de 5 compañeros de clase. Las filas deben representar a las personas y
las columnas sus caracterı́sticas.

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 25 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Contenido

1 Clase I: Principios de programación

2 Clase II: Tipos de datos

3 Clase III: Operaciones básicas con matrices

4 Clase IV: Condicionales y ciclos

5 Clase V: Funciones I

6 Clase VI: Funciones II [Taller]

7 Clase VII: Funciones recursivas

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 26 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Matrices y escalares

Sı́mbolo Significado Condiciones


A+2 A + 2 = A(i, j) + 2 No
A−2 A − 2 = A(i, j) − 2 No
A∗2 A ∗ 2 = A(i, j) ∗ 2 No
A/2 A/2 = A(i, j)/2 No
A2 A2 = A ∗ A (Not A ∗ A′ ) matriz cuadrada

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 27 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Operaciones básicas

Sı́mbolo Descripción Dimensiones Condiciones


∗ Multiplicación A(nxm) ∗ B(mxk) = C (nxk) Dimensiones internas iguales
+, − Adición, Resta A(nxm) + B(nxm) = C (nxm) Dimensiones iguales
inv Inversa inv (A(nxn)) = B(nxn) Matriz cuadrada (y det ̸= 0)

Transpuesta (A(nxm))′ = A(mxn) No
/ División por derecha A/B → XB = A A y B el mismo número de columnas
\ División por izquierda A\B → AX = B A y B el mismo número de filas

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 28 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Operadores punto

Sı́mbolo Definición Algoritmo


− Menos −A = −A(i, j)
.∗ Multiplicación A.*B = A(i,j)*B(i,j)
.∧ Potenciación A. ∧ B = A(i, j) ∧ B(i, j)
.\ División por izquierda A.\B = B(i,j)/A(i,j)
./ División por derecha A./B = A(i,j)/B(i,j)
.’ Transpuesta A.’ = A(i,j)’

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 29 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Otras operaciones

Matrices
length, size
numel
sort, ’descend’
det , tranpose
trace, rank
tril, triu
inv, diag
transpose
flipud, fliplr

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 30 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Distribuciones y estadı́sticas descriptivas

(b−a)2
rand [0,1] → µ = b+a
2
, σ2 = 12
rand [0,n]: rand ∗ n
rand [a,b]: rand ∗ (b − a) + a
randn [0,1]
randn [µ , σ 2 ]: randn ∗ σ+ µ

sum (matrix , dimension)


mean (matrix , dimension)
std (matrix , [ ] , dimension)
max (matrix , [ ] , dimension)
min(matrix , [ ] , dimension)

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 31 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Taller

1 Operadores de matrices: A partir de datos simulados vamos a recrear,


manualmente, el estimador por el método de Mı́nimos Cuadrados Ordinarios (MCO)
en una regresión entre temperatura y el número de personas que visitan atracciones
turı́sticas (a través de diferentes ciudades). Estás interesado en estudiar la siguiente
relación:
Personasi = β0 + β1 ∗ Temperatura + ε
El coeficiente de interés es β = [β0 , β1 ]. Realice los siguientes pasos:
a. Simular los datos
(i) Genere un vector con dimensión 1000 ∗ 1 de una distribución uniforme con promedio 14 y
varianza igual a 12 (llame a este vector “temperatura”).
(ii) Cree “varepsilon”, un vector con la misma dimensión, pero de una distribución normal
(asuma una media de 0 y varianza igual a 4).
(iii) Defina “personas” como en la ecuación previa suponiendo que conoces los verdaderos efectos
β0 = 10 y β1 = 5882.
b. Estimar los coeficientes
(i) El estimador de MCO se define como:
′ −1 ′
βMCO = (X X ) (X Y )
donde X es una matriz que contiene las variable independientes y Y es un vectro con la
variable dependiente.

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 32 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Taller

(ii) Calcule el estimador de MCO.


(iii) Compare los estimadores calculados con los reales (puedes usar el comando rng(2) para fijar
la semilla 2).
(e ′ e)
(iv) Calcule la varianza de MCO. (Recuerde que Var (βOLS ) = σ 2 (X ′ X )−1 y σ 2 = n−k ).
(v) Calcule los errores estándar robustos. Recuerde que la varianza robusta puede ser calculada
como Varr (βOLS ) = (X ′ X )−1 X ′ diag(ε̂21 , ε̂22 , ..., ε̂2n )X (X ′ X )−1 .
(vi) Algunos investigadores creen que en 2050, la varianza de la temperatura será el doble.
¿Cómo afecta esto la exactitud del cálculo?
(vii) ¿Qué sucede si la varianza del error es el doble?
2 Cree una expresión (pueden ser varias lineas) para poder obtener el elemento de la
última posición de una matriz (es decir última fila y última columna). Debe ser lo
suficientemente general para poder hacerlo con una matriz de cualquier tamaño.
3 Cree una matriz de 100x 100 que tenga en su diagonal elementos con una
distribución uniforme entre [4, 10].
4 Cree una matriz 4x 4 que de la siguiente manera:
a. La primera columna debe tener cuatro números aleatorios con una distribución
uniforme en el intervalo [0, 1].
b. La segunda columna debe tener cuatro números aleatorios con una distribución
uniforme en el intervalo [−1, 0].

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 33 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Taller

c. La tercera columna debe tener cuatro números aleatorios con una distribución
uniforme en el intervalo [−4, 4].
d. La cuarta columna debe tener cuatro números aleatorios con una distribución normal
estándar.
5 Cree una expresión que le permita obtener la posición diagonal más alta (en
términos del n?mero de fila y de columna) de una matriz. Tenga en cuenta que
dicha expresión también puede aplicarse a matrices no necesariamente cuadradas.
Debe ser lo suficientemente general para poder hacerlo con una matriz de cualquier
tamaño. (pista: utilice la función min).

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 34 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Contenido

1 Clase I: Principios de programación

2 Clase II: Tipos de datos

3 Clase III: Operaciones básicas con matrices

4 Clase IV: Condicionales y ciclos

5 Clase V: Funciones I

6 Clase VI: Funciones II [Taller]

7 Clase VII: Funciones recursivas

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 35 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Proposiciones

Sı́mbolo Significado
A. Proposiciones simples
< Menor a
> Mayor a
<= Menor o igual
>= Mayor o igual
== Igual
∼= Diferente

B. Proposiciones compuestas
|| O
&& Y
∼ Not
xor O excluyente (xor (A, B))

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 36 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Taller

1 Cree un ciclo que muestre los números impares desde el 1 hasta el 22.
2 Cree un ciclo que muestre cada elemento de un vector que contiene los nombres de
sus 3 series favoritas.
3 Cree un ciclo que imprima los números de un vector y pare cuando llegue a su
mediana.
4 Cree un ciclo que evalúe todos los números del 1 a 20 e imprima solo los números
que son pares.
5 Cree un ciclo que evalúe cada posición de una matriz mágica de orden 7 y devuelva
una matriz de orden 7 con unos (1) en las posiciones en las cuales el número es
superior 25. De la matriz resultante, cuente el total de unos que existen.

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 37 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Contenido

1 Clase I: Principios de programación

2 Clase II: Tipos de datos

3 Clase III: Operaciones básicas con matrices

4 Clase IV: Condicionales y ciclos

5 Clase V: Funciones I

6 Clase VI: Funciones II [Taller]

7 Clase VII: Funciones recursivas

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 38 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Funciones

1 Existen dos tipos de ficheros .m, los ficheros de comando (scripts) y las funciones.
2 El nombre del fichero *.m que guarda una función debe coincidir con el nombre de la
función.
3 Para leer variables desde teclado y escribir mensajes en la pantalla:
disp(’Mensaje’)
n = input(’Mensaje’; ’s’)
4 Carácteres utilizados para controlar la salida.
n salto de lı́nea
t tabulador
5 Formatos
%d → enteros
%f → float (número real)
%c → un solo carácter
%s → strings

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 39 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Sintaxis de una función

function [outputArg] = untitled(inputArg1,inputArg2)


Summary of this function goes here
explanation goes here
outputArg = inputArg1;
end

Ejemplo:

function [total] = suma(número1,número2, número3)


Esta función devuelve la suma de todos los elementos
elementos deben ser escalares
total = número1 + número2 + número3;
end

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 40 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Ejercicios de clase

Cree una función que:


1 Calcule el área de un cı́rculo (area circulo).

Input: radio.
Output: área de un cı́rculo.
2 Calcular la inversa de la traspuesta de una matriz (inversa).
Input: matriz.
Output: inversa de la traspuesta de una matriz.
3 Calcule la función de producción Cobb-Douglas (cobb douglas).
Función de producción: Q = AK α L1−α .
Input: A, K, L, alpha.
Output: Producción.
4 Calcular la traspuesta de una matriz (array traspuesta).
Input: matriz.
Output: un arreglo con la palabra “Traspuesta” en la posición (1,1) y la traspuesta de
la matriz en la posición (1,2).
5 Calcular la media y la desviación estándar de un vector (med sum).
Input: vector.
Output: Tanto la media como la desviación estándar.

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 41 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Ejercicios de clase

6 Cree la función cuenta si


Input: vector con los promedios de n estudiantes y un escalar que será el punto de
corte.
Output: número de estudiantes que están por arriba del punto de corte.
7 Cree la función sum matrix
Input: Una matriz de cualquier dimensión.
Output: Suma de todos los elementos de la matriz.
8 Cree una función que redondee números. Esta función debe tener dos inputs:
1 El número a redondear.
2 El número de lugares decimales deseados por el usuario.
Click here for debugging information.

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 42 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Contenido

1 Clase I: Principios de programación

2 Clase II: Tipos de datos

3 Clase III: Operaciones básicas con matrices

4 Clase IV: Condicionales y ciclos

5 Clase V: Funciones I

6 Clase VI: Funciones II [Taller]

7 Clase VII: Funciones recursivas

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 43 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Taller

1 Cree una función que reciba una matriz, y devuelva la suma de los elementos pares
(pares).
2 Escriba una función, que se llame suma impar, que para un argumento n > 0 calcule
la suma de todos los números impares desde 1 hasta n. Por ejemplo, para n = 11 se
debe tener como resultado: 1 + 3 + 5 + 7 + 9 + 11 = 36.
3 Escriba una función, que se llame prod impar, que para un argumento n > 0 calcule
el producto de todos los números impares desde 1 hasta n (o hasta n − 1 si n es par).
4 Cree una función column2 que tenga de input una matriz y de output la segunda
columna de ésta.
5 Cree una función que tenga como input un número. A partir de este número cree
una matriz con valores aleatorios con distribución normal estándar de tamaño N
(aproximación del input) y que tenga de output la media de TODOS los números de
la matriz.
6 Escriba una función (prime factors)
Input: número natural de más de un dı́gito.

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 44 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Taller

Output: vector que contenga la descomposición de factores primos. Por ejemplo los
factores primos de 54 son [2, 3, 3, 3].
7 En este ejercicio debe crear una función en orden para facilitar el cálculo de
estadı́sticas descriptivas para un profesor quien cada semestre tiene que organizar a
sus estudiantes de acuerdo a las notas de las evaluaciones. El input es una matriz
(cada fila representa un estudiante y cada columna una tarea). El output debe ser:
a. Una matriz donde cada fila represente un estudiante y:
la primera columna tenga el promedio (suponga que todas las tareas tienen la importancia).
la segunda columna tenga la nota más alta.
la tercera columna tenga la posición de la nota más alta.
b. Otra matriz donde cada fila represente las tareas (en el mismo orden que están en las
columnas de la matriz original) y:
la primera columna calcule el promedio de cada tarea a través de todos los estudiantes.
la segunda columna calcula la mediana de cada tarea a través de todos los estudiantes.
la tercera columna calcula desviación estándar de cada tarea a través de todos los estudiantes.

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 45 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Contenido

1 Clase I: Principios de programación

2 Clase II: Tipos de datos

3 Clase III: Operaciones básicas con matrices

4 Clase IV: Condicionales y ciclos

5 Clase V: Funciones I

6 Clase VI: Funciones II [Taller]

7 Clase VII: Funciones recursivas

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 46 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Funciones recursivas

Una función recursiva consta de uno o varios casos base y general.


Un caso base es un valor de los parámetros de la función para los que la función se
soluciona sin realizar ninguna llamada recursiva.
Un caso general o recursivo es un valor de los parámetros de la función para los que
la función utiliza una o varias llamadas recursivas para calcular su solución.
Si no existiera caso base la recursividad nunca terminarı́a, porque todos los casos
serı́an generales e implicarı́an una llamada recursiva para su solución.

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 47 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Ejercicios de clase
Recursividad

Usando recursividad, cree las siguientes funciones:


Ejercicio 1: Cree la función rec exponente:
Input: dos escalares: base y exponente (a, b).
Output: ab .

Ejercicio 2: Cree la función rec factorial que calcule el factorial de un número.

Ejercicio 3: Cree la función digito que sume los dı́gitos de un escalar.

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 48 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Ejercicios de clase
Recursividad

Ejercicio 4: Diseñe e implemente un algoritmo (descomp) que cuente cuántas


posibles descomposiciones existen de un número natural como suma de números
menores que él. Por ejemplo:
1=1
2=1+1
3=2+1
3=1+1+1
4=3+1
4=2+1+1
4=2+2
4=1+1+1+1

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 49 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Ejercicios de clase
Recursividad

Ejercicio 5: Cree la función rec comb. Esta función debe devolver el número de
veces que es posible elegir m objetos en n grupos, usando la siguiente propiedad de
Pascal:      
m m−1 m−1
= +
n n n−1

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 50 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Ejercicios de clase
Recursividad

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 51 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Taller
Recursividad

Usando recursividad, cree las siguientes funciones:


1 rec vector sum cuyo input debe ser un vector y el resultado deberá ser la suma de
todos los elementos del vector.
2 rec vector pro cuyo input debe ser un vector y el resultado deberá ser la
multiplicación de todos los elementos del vector.
3 rec fibonacci. La sucesión de Fibonacci se define como:

{Fn ∈ N : Fn = Fn−1 + Fn−2 , F0 = 0, F1 = 1, n ∈ N}


Debes crear la siguiente función:
Input: un escalar n.
Output: el número n la sucesión Fibonacci (Fn ).
4 Create again the Fibonacci sucession without using recursion.
5 Usando el algoritmo euclideano, cree la función (rec euclides) que calcule el máximo
común divisor de dos números naturales a y b.
6 Create a function (orden) that orders an integer array from lowest to highest.

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 52 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

Taller
Recursividad

7 dividir rec que divida un número en 2 hasta que el número obtenido sea menor que
dos.
Input: un número.
Output: el número de veces que el dicho número puede ser dividido en 2.

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 53 / 54
Clase I: Principios de programación Clase II: Tipos de datos Clase III: Operaciones básicas con matrices Clase IV: Condicionales y ciclos Clase V: Funciones

¿Cómo hablan las máquinas?

Sabiendo que...
2n ... 25 24 23 22 21 20
∞ ... 32 16 8 4 2 1
Suponga que neceistamos transformar el número 22 en lenaguaje máquina. ¿A qué serı́a
igual? Se busca el número más grande de la tabla que sea inferior al número que se desea
transformar y allı́ pondremos un 1. Luego, con la diferencia se repite el procedimiento
hasta que no existan unidades por ubicar.

32 16 8 4 2 1
0 1 0 1 1 0

¿Y los sı́mbolos y las letras? Se usa la tabla ASCII (American Standard Code for Informa-
tion Interchange) y se transforma el código correspondinete a binario. Atrás

Fayber Acosta Pardo (Universidad de los Andes) Taller de Programación en MATLAB March 3, 2023 54 / 54

También podría gustarte