Matlab Basico

91
Benemérita Universidad Autónoma de Puebla Facultad de ciencias de la Electrónica Curso MATLAB Básico Ponentes: Lozano Torralba Ulises Bueno Ruíz José Luis Coordinadora: Dra. Juárez Ruiz Estela FCE BUAP

Transcript of Matlab Basico

Page 1: Matlab Basico

Benemérita Universidad Autónoma de Puebla

Facultad de ciencias de la Electrónica

Curso MATLAB Básico

Ponentes:Lozano Torralba Ulises Bueno Ruíz José Luis

Coordinadora: Dra. Juárez Ruiz Estela

FCE BUAP

Page 2: Matlab Basico

• Introducción• Fundamentos de MATLAB• Matrices, vectores y funciones matemáticas• Symbolic Math Toolbox• Tipos de datos en MATLAB• Programación en MATLAB

Índice

Page 3: Matlab Basico

IntroducciónObjetivo:

• Conocer ambiente de trabajo• Manejar matrices y vectores• Poder resolver problemas matemáticos• Utilizar los diferentes tipos de datos• Aprender el lenguaje de programación

de MATLAB

Page 4: Matlab Basico

IntroducciónEste curso esta enfocado a personas que:

• No tengan ningún conocimiento previo MATLAB.• Estén relacionadas con las áreas de ciencias exactas e

ingeniería.• Estén interesadas en utilizar MATLAB como

herramienta para resolver problemas matemáticos, de ciencia e ingeniería.

Page 5: Matlab Basico

IntroducciónAntecedentes:

• Matlab Surge de los proyectos LINPACK y EISPACK• La empresa MathWorks es fundada en 1984.• The Mathworks es líder en el desarrollo de software

de computación técnica, además la empresa tiene más de 1 millón de usuarios alrededor del mundo.

Page 6: Matlab Basico

IntroducciónAntecedentes:

• The Mathworks tiene más de 1,000 empleados trabajando en el desarrollo de las herramientas MATLAB y SIMULINK para innovar tecnología en empresas, laboratorios gubernamentales, instituciones financieras y en más de 3,500 Universidades.

Page 7: Matlab Basico

Introducción¿Qué es MATLAB?

MATLAB Matrix Laboratory

– MATLAB es un software matemático muy versátil que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programación propio (lenguaje M), que es un conjunto de comandos o funciones que realizan tareas específicas y dispone de más de 30 librerías especializadas llamadas “Toolboxes” las cuales trabajan en áreas especiales como Control, Coumunicaciones, Procesamiento de Señales, etc.

Page 8: Matlab Basico

Introducción¿Qué es MATLAB?

• Aplicaciones:– Matemáticas, estadística y análisis de datos. – Desarrollo de algoritmos. – Adquisición y procesamiento de datos.– Prueba, modelado y simulación de prototipos.– Análisis, manipulación y visualización de datos.– Diferentes tipos de Graficación.– Desarrollo de aplicaciones con Interfaces Gráficas de

Usuario.

Page 9: Matlab Basico

• Introducción• Fundamentos de MATLAB• Matrices, vectores y funciones matemáticas• Symbolic Math Toolbox• Tipos de datos en MATLAB• Programación en MATLAB

Índice

Page 10: Matlab Basico

Fundamentos de MATLABVentana estándar

1

32

4

5

Page 11: Matlab Basico

Fundamentos de MATLABVentana estándar

1

32

4

5

Matlab Desktop

Ventana de comandos (Command Window)Ventana del directorio actual (Current Directory)

Ventana del espacio de trabajo (Workspace)

Ventana histórica de comandos (Command History)

Page 12: Matlab Basico

Fundamentos de MATLABPráctica

Uso del Help en MATLABy

Funciones para el Help

Page 13: Matlab Basico

Fundamentos de MATLABAspectos Generales: Menús

MATLAB dispone de varios menús los cuales varían de acuerdo a la ventana que se encuentre activa

Dentro de las características que se pueden configurar con estos menús se encuentran:– Crear, salvar e importar diferentes tipos de archivos usados por

MATLAB– Configurar algunas preferencias de usuario como: tipo y color de

letra, color de fondo del Command Window, formato numérico, visualización de resultados, etc.

– Manipulación y visualización de las ventanas dentro del Desktop– Búsqueda de palabras o archivos en las diferentes ventanas

Page 14: Matlab Basico

Fundamentos de MATLABShortcuts

• Los shorcuts son una forma fácil y rápida de ejecutar un conjunto de sentencias en MATLAB.

• Un shorcut puede ser: una sola sentencia (o función), un conjunto de sentencias o un archivo M.

• Con solo dar click en el shorcut se ejecuta el conjunto de sentencias.

Page 15: Matlab Basico

• Introducción• Fundamentos de MATLAB• Matrices, vectores y funciones matemáticas• Symbolic Math Toolbox• Tipos de datos en MATLAB• Programación en MATLAB

Índice

Page 16: Matlab Basico

Matrices, vectores y funciones matemáticas

Definir matrices y vectoresMATLAB posee una gran variedad de funciones para trabajar con

matrices y vectores.Las matrices se declaran de la siguiente manera:

• Para declarar una nueva fila se escribe un punto y coma (;). • Para declarar una nueva columna se usa un espacio en blanco.

1 5 9 66 2 0 81 -9 5 -1

A = A = [1 5 9 6; 6 2 0 8; 1 -9 5 -1]

Page 17: Matlab Basico

Matrices, vectores y funciones matemáticas

Expresiones

• El signo igual(=) es para asignar resultados a una variable>> variable = expresión

• MATLAB distingue entre mayúsculas y minúsculas en el nombre de una variable, por ejemplo NO es lo mismo la variable “var” que la variable “Var”

• El nombre de una variable debe empezar siempre con una letra seguida de números o más letras u otros caracteres siempre y cuando no sean caracteres especiales; el nombre puede tener un máximo de 31 caracteres.

Page 18: Matlab Basico

Matrices, vectores y funciones matemáticas

Expresiones

• El punto y coma (;) al final de una expresión significa que va a realizar la operación que se le indique pero no va a mostrar los resultados en pantalla.

• Los tres puntos (…) sirven para indicar que la expresión va a continuar en la línea de abajo.

• Cuando la operación no se le asigna a ninguna variable entonces automáticamente se le asigna a la variable “ans”.

Page 19: Matlab Basico

Matrices, vectores y funciones matemáticas

OperacionesMATLAB soporta todas las operaciones aritméticas entre

matrices o vectores siguiendo la teoría, por ejemplo: para sumar dos matrices, deben de ser del mismo tamaño; la multiplicación de una matriz A (mxn) por una matriz B (kxp) debe cumplir que n=k.>>A + B (suma)>>A - B (resta)>>A * B (multiplicación)>>A’ (transpuesta)>>A^2 (potenciación)>>A \ B (división izquierda A*inv(B)) se usa para la solución de sistemas de

ecuaciones>>A / B (división derecha, inv(A)*B) complemento de la división izquierda

Page 20: Matlab Basico

Matrices, vectores y funciones matemáticas

OperacionesExisten otros operadores llamados “operadores elemento a

elemento” los cuales realizan la operación indicada pero a cada uno de los elementos que conforman al vector o a la matriz, dichos operadores tienen la característica de que están precedidos por un punto (.).

>>A.*B multiplicación: A(i, j) * B(i,j) >>A.^n potencia: A(i, j)n

>>A .\ B división: B(i, j) / A(i,j) >>A ./ B división: A(i, j) / B(i,j)

Page 21: Matlab Basico

Matrices, vectores y funciones matemáticas

Práctica

Declaración de matrices y vectoresOperaciones Aritméticas

yManejo de expresiones

Page 22: Matlab Basico

Matrices, vectores y funciones matemáticas

Representación numérica

• Por default MATLAB almacena los números en formato de doble precisión, es decir, en 8 bytes.

• MATLAB puede interpretar el concepto de Infinito con la palabra “Inf”(para MATLAB son los números más grandes de lo que es capaz de representar).

• MATLAB tiene una representación para los números que no están definidos como tal, llamados “NaN” (Not a Number).

Tanto la representación de NaN como la de infinito permite controlar la fiabilidad de los resultados que presenta MATLAB.

Page 23: Matlab Basico

Matrices, vectores y funciones matemáticas

Representación numérica

• MATLAB puede representar y manipular números complejos, las variables ‘ i ’ y ‘ j ’ están definidas como “la unidad imaginaria”.

>>z = 4 + 5j ó>>z = complex(4,5)

• Se debe de tener especial cuidado con las variables ‘i’ y ‘j’, si se usan para guardar algún valor numérico dejan de ser la unidad imaginaria.

• Se pueden realizar las operaciones aritméticas entre números complejos y matrices o vectores que contengan a complejos.

Page 24: Matlab Basico

Matrices, vectores y funciones matemáticas

Práctica

Representación numéricay

Números complejos

Page 25: Matlab Basico

Matrices, vectores y funciones matemáticas

Funciones de matrices y vectores

Existe una gran variedad de funciones predefinidas para crear matrices de todo tipo:– Matriz de ceros. zeros(m,n)– Matirz de unos. ones(m,n)– Matriz identidad. eye(m,n)– Matriz aleatoria. rand(m,n) randint(m,n, [i,j]) – Matriz mágica. magic(k)

Ayuda: Specialized Matrix Functions

Page 26: Matlab Basico

Matrices, vectores y funciones matemáticas

Funciones de matrices y vectores

Es posible también realizar manipulaciones y obtener información de las matrices que se tienen:

– Tamaño de una matriz. size(A)– Longitud de un vector. lenght(A)– Concatenación de matrices. cat(dim, A, B)– Rotación de matrices. rot90(A,k)– Matrices triangulares. tril(A,k)

Ayuda: Summary of Matrix and Array Functions

Page 27: Matlab Basico

Matrices, vectores y funciones matemáticas

Funciones de matrices y vectoresExisten también algunas funciones un poco más elaboradas y

complejas en cuanto a su operación, las cuales realizan tareas como:– Inversa de una matriz. Inv(A)– Determinante. det(A)– Suma de la diagonal. trace(A)– Factorización tipo L*U. lu(A)– Reducción de matrices por Gauss-Jordan. rref(A)– Obtención del polinomio característico. poly(A)– Obtención de los eigenvalores y eigenvectores. eig(A)– Descomposición Schur. schur(A)– Rango y nulidad en una matriz. rank(A)

Page 28: Matlab Basico

Matrices, vectores y funciones matemáticas

Práctica

Funciones que actúan sobrematrices y vectores

Page 29: Matlab Basico

Matrices, vectores y funciones matemáticas

DireccionamientoDireccionamiento en vectores.• Para tener acceso a los elementos en un vector se debe de

poner el índice entre paréntesis, el índice siempre empezará siempre por el número 1.

x = [ 10 3 2 . . . 3 ] x(1) x(2) x(3) . . . x(n)

• Pueden accederse varios elementos a la vez colocando entre paréntesis un vector de índices

>>x([1 2 3]) acceso a los elementos 1,2 y 3 del vector x

Page 30: Matlab Basico

Matrices, vectores y funciones matemáticas

DireccionamientoDireccionamiento en vectores.• En lugar de un vector de índices se obtener una matriz con los

elementos correspondientes a los índices.

>>x([1 5;9 4]) devuelve una matriz de 2x2 con los elementos que corresponden a los índices 1,5,9 y 4

x = [ 7 10 7 9 1 2 9 5 9 8 ]x([1 5;9 4])

ans = 7 1

9 9

Page 31: Matlab Basico

Matrices, vectores y funciones matemáticas

DireccionamientoDireccionamiento de matricesExisten 2 posibles formas de acceder a los elementos de una

matriz:– Con 2 subíndices (i, j) en donde “i” es el número de fila y “j” es el

número de columna.– Con 1 subíndice (i) en donde los elementos se van contando por

columnas.

A(2,2) = A(6) se accede al número 11

2 9 7 3 9 7 6 5 8 3 1 5 8 3 1 10

A=

Page 32: Matlab Basico

Matrices, vectores y funciones matemáticas

DireccionamientoDireccionamiento de matricesTambién es posible hacer el direccionamiento por medio de 2

vectores

>>A( [1 3], [ 4 2] ) hace las combinaciones [(1,4) (1,2); (3,4) (3,2)]

A( [1 3], [ 4 2] )

ans = 1 2 4 10

6 2 1 1 4 9 9 5 5 10 7 4 6 6 8 2

A=

Page 33: Matlab Basico

Matrices, vectores y funciones matemáticas

Operador dos puntos (:)El operador dos puntos puede usarse de 3 formas distintas:

– Creador de vectores con incrementos o decrementos.x=1:10 crea un vector del 1 al 10 con incremento de 1.x = 1:i:10 crea el mismo vector pero con incremento de i.

– Direccionamiento “hasta”.A(1,2:5) direcciona los elementos de la fila 1, desde la

columna 2 “hasta” la columna 5.x(5:8) direcciona del elemento 5 “hasta” el 8.

– Direccionamiento “todo”.A(3, :) direcciona “toda” la fila 3.A(: , 1) direcciona “toda” la columna 1.x(: , end) direcciona “toda” la última columna.

Page 34: Matlab Basico

Matrices, vectores y funciones matemáticas

Operadores relacionales

En los operadores relacionales si la condición se cumple regresa un 1 lógico, de lo contrario regresa un 0 lógico.

Este tipo de operadores se pueden usar también para comparar matrices o vectores siempre y cuando sean del mismo tamaño, cuando esto sucede la comparación se realiza elemento a elemento.

< menor que> mayor que<= menor o igual que

>= mayor o igual que= = igual que~ = diferente a

Page 35: Matlab Basico

Matrices, vectores y funciones matemáticas

Operadores lógicos

Los operadores lógicos se usan en combinación con los relacionales para comprobar el cumplimiento de condiciones múltiples.

if (A>5)&(A<10)~(A>20)

Los operadores lógicos toman como 1 lógico a todos los números diferentes de cero, mientras que toma como 0 lógico solo a los elementos que sean cero.

& AND| OR ~ NOT

Page 36: Matlab Basico

Matrices, vectores y funciones matemáticas

Práctica

Ejemplos de direccionamientoOperador dos puntos

yOperadores lógicos y relacionales

Page 37: Matlab Basico

Matrices, vectores y funciones matemáticas

Funciones matemáticasMATLAB dispone de las funciones matemáticas más usadas.

Algunas de ellas son:

>>exp(x) función exponencial

>>log(x) logaritmo natural>>log10(x) logaritmo base 10 >>log2(x) logaritmo base 2>>pow2(x) eleva 2 a la x>>sqrt(x) raíz cuadrada>>round(x) redondeo>>primes(x) obtiene los

números primos>>factorial(x)

Page 38: Matlab Basico

Matrices, vectores y funciones matemáticas

Funciones matemáticas

MATLAB también tiene las funciones trigonométricas, que pueden ser aplicadas también a matrices y vectores en donde la operación se realiza elemento a elemento.

sin sinh asin

cos cosh acos

tan tanh atan

Page 39: Matlab Basico

Matrices, vectores y funciones matemáticas

Polinomios• La representación de polinomios en MATLAB se realiza por

medio de vectores de la siguiente manera:x4 – 8x2 + 6x – 10 [1 0 -8 6 -10]

• Dentro de las operaciones que se pueden realizar con polinomios se encuentran las siguientes:

– Obtención de las raíces roots(x)– Evaluación del polinomio con diferentes valores polyval(x,k)– Diferenciación e integración del polinomio polyder (x); polyint(x)– Representación en fracciones parciales [r,p,k]=sidue(b,a)

Page 40: Matlab Basico

Matrices, vectores y funciones matemáticas

Práctica

Funciones matemáticasy

Polinomios

Page 41: Matlab Basico

• Introducción• Fundamentos de MATLAB• Matrices, vectores y funciones matemáticas• Symbolic Math Toolbox• Tipos de datos en MATLAB• Programación en MATLAB

Índice

Page 42: Matlab Basico

Symbolic Math Toolbox

• Los Symbolic Math Toolboxes incorporan el uso de símbolos dentro del ambiente numérico de MATLAB. Estos toolboxes sustituyen el MATLAB numérico y gráfico con otras formas de computación matemática.

• El campo de aplicación de este Toolbox abarca diversos tópicos:– Cálculo: diferenciación, integración, límites, sumatorias, series de Taylor.– Álgebra Lineal: inversas, determinantes, eigenvalores, matrices simbólicas.– Métodos de simplificación de expresiones algebraicas.– Solución de sistemas de ecuaciones.– Funciones matemáticas especiales.

Page 43: Matlab Basico

Symbolic Math Toolbox• La base computacional que soporta a estos Toolboxes es el kernel

de Maple, el cual es una aplicación para la solución de problemas matemáticos y la creación de aplicaciones técnicas interactivas.

• El Symbolic Math está conformado por 2 toolboxes: – El Symbolic Math Toolbox Básico es una colección de más de 100 funciones

que proporcionan acceso al kernel de Maple usando la sintaxis y el estilo al que nos tiene acostumbrados el lenguaje de MATLAB.

– El Symbolic Math Toolbox Extendido aumenta la funcionalidad del básico al incluir todos los paquetes no-gráficos de Maple, características de programación y procedimientos definidos por el usuario.

• Al mencionar que estos toolboxes se basan en símbolos, en términos de MATLAB se refieren a elementos llamados “objetos simbólicos”

Page 44: Matlab Basico

Symbolic Math Toolbox• Estos objetos simbólicos son estructuras de datos que almacenan

una representación de variables, expresiones y matrices algebráicas en forma de cadenas de caracteres.

Declaración de variables y expresiones simbólicas:

>> a = sqrt(sym(2))a =

2^(1/2)

>> sym(2)/sym(5) ans = 2/5

f=(x^2- 4)/ (x+ 2)f = sym('a*x^2 + b*x + c‘)

x = sym('x')a = sym('alpha')

Page 45: Matlab Basico

Symbolic Math ToolboxPráctica

Creación de variables y expresiones simbólicas

Page 46: Matlab Basico

Symbolic Math ToolboxSimplificación de expresiones

• MATLAB cuenta con varias funciones para reducir una expresión matemática, de esta manera hace más entendible y menos compleja la expresión; dicha reducción la realiza haciendo uso de diferentes identidades trigonométricas y algebraicas.

• pretty(f) permite ver la expresión f de una forma más amena y precisamente más “bonita”

• collect(f) hace ver a ‘f’ como a un polinomio en términos de su variable simbólica, digamos ‘x’; y suma todos los coeficientes que tienen la misma potencia de x.

61166*112^*63^ 23 xxxxxxf

6*112^*63^)3(*)2(*)1( xxxxxxf

Page 47: Matlab Basico

Symbolic Math ToolboxSimplificación de expresiones

• expand(f) distribuye los productos en sumas y aplica identidades a funciones que envuelven a las sumas en sus argumentos.

• horner(f) transforma un polinomio simbólico en su representación anidada, tratando de expresar la variable simbólica con el menor grado.

• factor(f) si f es un polinomio con coeficientes racionales, entonces f es expresado como producto de factores, los cuales al ser multiplicados dan el polinomio original. Si f no puede ser factorizado entonces el resultado es el mismo.

)sin(*)sin()cos(*)cos()cos(

**)(*

yxyxyx

yaxayxa

xxxxxx *)*)6(11(66*112^*63^

)3(*)2(*)1(6*112^*63^ xxxxxx

Page 48: Matlab Basico

Symbolic Math ToolboxSimplificación de expresiones

• simplify(f) es una de las funciones más poderosas en cuanto a simplificación se refiere ya que aplica identidades algebraicas así como identidades funcionales como las trigonométricas, exponenciales y logarítmicas.

• simple(f) este tipo de simplificación alcanza su objetivo aplicando las funciones simplify, collect, factor, y otras funciones de simplificación, es la forma más general de simplificación ya que muestra todos los resultados en pantalla.

3/1^3^/3^1*2 3/1^812/a6/a^21/a^3

1 x)-x^2)/(1-(1

aa

x

12^cos*3 ^2sin-^2cos*2

12^sin2^xcos

xxx

x

Page 49: Matlab Basico

Symbolic Math ToolboxSimplificación de expresiones

• subs(f,old,new) reemplaza en la expresión simbólica ‘f’ la expresión o variable “old” por la expresión o variable “new”.

Por ejemplo: sea la función simbólica f= x^2 - 1/2*x - 1/2

>>subs(f, ’1/2’, ‘a’) x^2 - (a)*x - (a)>>subs(f, ‘x’, ‘a’) a^2 - 1/2*a - 1/2>>subs(f, ‘1/2*x-1/2’, ’a’) x^2 - (a)

Page 50: Matlab Basico

Symbolic Math ToolboxAplicaciones en Cálculo

Operador matemático

Comando de MATLAB

Operador matemático

Comando de MATLAB

diff(f) o diff(f,x) limit(f)

diff(f, a) limit(f ,x ,a) o limit(f, a)

diff(f,b,2) limit(f, x, a, ‘left’)

J=jacobian([r ; t] , [u , v] limit(f, x, a, ‘right’)

Page 51: Matlab Basico

Symbolic Math ToolboxAplicaciones en Cálculo

Operador matemático Comando de MATLABOperador

int(x^n) o int(x^n, x)

int(sin(2*x), 0, pi/2 o int(sin(2*x), x, 0, pi/2

g=cos(a*t+b)int(g)

oint(g,t)

Int(besselj(1, z)) o Int(besselj(1, z), z)

Page 52: Matlab Basico

Symbolic Math ToolboxAplicaciones en Cálculo

• Operaciones algebraicas:

• Sumatorias simbólicasf(0)+f(1)+f(2)+f(3) symsum(f,x,0,3)

• Series de Taylor taylor(f)

3x+5y2x+4y +4y

5x+13y

Page 53: Matlab Basico

Symbolic Math ToolboxAplicaciones en Cálculo

• Graficación simbólica:

ezplot (f)

Page 54: Matlab Basico

Symbolic Math ToolboxPráctica

Ejemplos con aplicaciones al cálculo y simplificación de expresiones simbólicas

Page 55: Matlab Basico

Symbolic Math ToolboxSolución de ecuaciones

• El Symbolic Math Toolbox dispone principalmente de 2 funciones para la solución de ecuaciones:– Solve(f).- resuelve la ecuación simbólica algebráica f para la variable

simbólica que este por default para f=0, en caso de ser un sistema con múltiples ecuaciones, entonces habrá múltiples soluciones por lo que esta función regresa las soluciones en forma de estructura.

x2 – ½x – ½ f = x^2 + ½*x - ½ 1

-1/2

Page 56: Matlab Basico

Symbolic Math ToolboxSolución de ecuaciones

• dsolve(s).- me permite resolver expresiones simbólicas pero que tengan la característica de ser ecuaciones diferenciales ordinarias, éstas ecuaciones deben de contener el carácter ‘D’ el cual denota diferenciación. Los símbolos D2, D3, …, Dn denotan la segunda, tercera, …, n-ésima derivadas respectivamente.

Por ejemplo: D2 representa , la variable dependiente por default que maneja el toolbox es la variable ‘t’.

Page 57: Matlab Basico

Symbolic Math ToolboxPráctica

Solución de ecuaciones

Page 58: Matlab Basico

Symbolic Math ToolboxFunciones matemáticas especiales

Existen algunas funciones que son especiales en cuanto a su aplicación, este tipo de funciones se pueden ejecutar con una sola función llamada “mfun”, algunas de estas funciones se enlistan a continuación:

Binominal Coefficients Riemann Zeta Functions Bernoulli Numbers and Polynominals Euler Numbers and Polynomials Harmonic Function Logarithmic Integral Shifted Sine Integral Fresnel Sine And Cosine Integral Dawson’s Integral Error Function Gamma Function Logarithm of the Gamma Function

Digamma Function Polygamma Function Generalized Hypergeometric Function Bessel Functions Complete Elliptic Integrals Beta Function Lambert’s W Function

Page 59: Matlab Basico

Symbolic Math ToolboxFunciones matemáticas especiales

>>mfunlist para obtener toda la lista de funciones especiales>>mhelp function obtener la ayuda de una función especial

La estructura de la función “mfun” depende directamente del tipo de función especial que se utilice, en general la estructura es la siguiente:

mfun (‘fun’, p1, p2,…)

Conjunto de parámetros según el tipo de función

especial

Nombre de la función Principal

Page 60: Matlab Basico

• Introducción• Fundamentos de MATLAB• Matrices, vectores y funciones matemáticas• Symbolic Math Toolbox• Tipos de datos en MATLAB• Programación en MATLAB

Índice

Page 61: Matlab Basico

Tipos de datos en MATLABTipos de datos

• MATLAB soporta diferentes tipos de datos como dobles, simples, cadenas, lógicos, etc. De hecho, el usuario puede hacer su propio tipo de dato haciendo uso de las “Clases”.

• Existen 15 tipos de datos fundamentales en MATLAB:

ARRAY[Full or sparse]

logical char NUMERIC cell structure functionhandle

User classes

Java classes

int8, uint8, int16, uint16, int32, uint32, int64,

uint64

single double

Page 62: Matlab Basico

Tipos de datos en MATLABTipos numéricos y lógicos

• Los tipos numéricos incluyen a los enteros (int), a los de simple y a los de doble precisión (double).

• Todos los tipos numéricos soportan operaciones matemáticas excepto los int64 y unit64.

• Los tipos de datos enteros son útiles porque nos ayudan a ahorrar espacio en memoria y a realizar las operaciones mucho más rápido.

Page 63: Matlab Basico

Tipos de datos en MATLABTipos numéricos y lógicos

• En los tipos de lógicos sólo existen 2 posibles valores que son: 1 o 0 (true o false respectivamente). Obviamente cada valor requiere solo de 1 bit para almacenarse.

• Los tipos lógicos se usan mucho en operaciones para imágenes binarias (en blanco y negro) y en programación cuando cierto valor o cierta condición se cumple o no.

Page 64: Matlab Basico

Tipos de datos en MATLABCadenas de caracteres

• Para declarar un dato de tipo cadena se coloca entre apóstrofes:

>> cad=‘nombre’>> cad2=‘mi correo@servidor’

• Cada carácter (cualquiera que este sea) escrito en la cadena se guarda en 2 bytes de memoria.

• La opción “help strings” da una pequeña ayuda acerca de las cadenas de caracteres.

• Se pueden crear matrices de cadenas de caracteres, siempre y cuando las cadenas sean de la misma longitud.

Page 65: Matlab Basico

Tipos de datos en MATLABCadenas de caracteres

• La librería que alberga a todas las funciones que actúan sobre cadenas de caracteres es ‘strfun’.

• La librería strfun cuenta con más de 30 funciones para manipulación de cadenas, algunas de las más usadas y más elementales son:

size(c): obtiene el número de caracteres. double(c): obtiene el código ASCII de la cadena. char(c): convierte de código ASCII a carácter. char(‘Pedro’, ’Juan Jose’): crea una matriz de cadenas. disp(c): imprime la cadena ‘c’ en pantalla.

Page 66: Matlab Basico

Tipos de datos en MATLABPráctica

Ejemplos con tipos numéricos, lógicos y cadenas de caracteres

Page 67: Matlab Basico

Tipos de datos en MATLABEstructuras (Arrays)

Las estructuras son agrupaciones de datos (llamados “campos”) de diferente tipo bajo un mismo nombre. Por ejemplo, la estructura alumno puede contener los campos nombre (cadena de caracteres) y edad (un número).

ARRAYalumno

Alumno(2)Alumno(1) Alumno(3)

•Nombre

•Edad

•Examen

Tania Arrieta

21

•Nombre

•Edad

•Examen

Aleida Cosme

18

•Nombre

•Edad

•Examen

Carmen Flores

20

8 9 7 10

7 6 8 8

10 8 10 9

Page 68: Matlab Basico

Tipos de datos en MATLABCreación de Estructuras

• 1° Forma.- se pueden crear estructuras con la utilización del punto(.). Simplemente se van añadiendo los campos que se requieren con su valor correspondiente. Cabe mencionar que un campo puede ser de cualquier clase (entero, doble, char, cell array, vector, matriz, etc.)

alumno.nombre = ‘Carmen Flores';alumno.edad = 20;Alumno.examen = [10 8; 10 9];

Page 69: Matlab Basico

Tipos de datos en MATLABArreglos de celdas (cell arrays)

• Un cell array proporciona un mecanismo de almacenamiento para diferentes tipos de datos. Los datos pueden ser de todo tipo: matrices, vectores, estructuras e incluso más cell arrays.

Celda 1,1 Celda 1,2 Celda 1,3

Celda 2,1 Celda 2,2 Celda 2,3

3 9 84 7 52 5 1

0.9 i 16 - 32i17 + i 2 + .7i

‘Carmen Flores'

‘11/9/88’

‘Clase II’

‘Obs. 1’

‘Obs. 1’

4.31 8.92 3.87 7.65

3 -16 28 -52 340 14 8

‘texto’ 5 4 6 9

2.2 4 .70.9 4.1

10 + 0.4i

Page 70: Matlab Basico

Tipos de datos en MATLABCreación y acceso a cell arrays

• Un cell array se puede crear de dos formas, usando paréntesis y usando llaves.– Si se usan paréntesis, entonces los valores deben ser dados entre llaves.

– Si se usan llaves, entonces los valores se dan tal cual.

• Cuando se quiere preguntar por el contenido de un elemento del cell array se puede hacer de dos formas:– A(1,2) regresa el tipo de dato que es y el tamaño, pero no me muestra el

contenido en si.– A{1,2} me muestra el contenido del elemento (1,2) del cell array, se recomienda

esta forma.

A(1,1) = {[1 4 3; 0 5 8; 7 2 9]};A(1,2) = {‘Tania Arrieta'};

A{1,1} = [1 4 3; 0 5 8; 7 2 9];A{1,2} = ‘Tania Arrieta ';

Page 71: Matlab Basico

Tipos de datos en MATLABPráctica

Estructuras y arreglos de celda

Page 72: Matlab Basico

• Introducción• Fundamentos de MATLAB• Matrices, vectores y funciones matemáticas• Symbolic Math Toolbox• Tipos de datos en MATLAB• Programación en MATLAB

Índice

Page 73: Matlab Basico

Programación en MATLABSintaxis del lenguaje

MATLAB posee su propio lenguaje de programación, con sus sentencias y sintaxis. Existen dos elementos básicos en cualquier lenguaje de programación:

• Sentencia IF

Condición 1

Condición 2

Bloque 3

Bloque 1

Bloque 2

true

truefalse

false

if condiciónsentenciasend

if condiciónsentenciaselsesentenciasend

if condicion1bloque1elseif condicion2bloque2elseif condicion3bloque3else bloque4end

Page 74: Matlab Basico

Programación en MATLABSintaxis del lenguaje

• Sentencia WHILE

• Sentencia BREAK: solamente se usa para romper los ciclos for o while

Condición

Sentencias

true

false

while condiciónsentenciasend

while condiciónsentencias if condición2 break endsentenciasend

Page 75: Matlab Basico

Programación en MATLABSintaxis del lenguaje

• Sentencia SWITCH • Sentencia FOR

switch expresióncase case_expr1,bloque1case {case_expr2, case_expr3, ...}Bloque2case {case_expr4, case_expr5,...}Bloque2...otherwise, % opción por defectobloque3end

for i=1:nsentenciasend

for i=vector de valoressentenciasend

Page 76: Matlab Basico

Programación en MATLABSintaxis del lenguaje

• Sentencia CONTINUE: esta sentencia sirve solamente dentro de ciclos, se usa para pasar a la siguiente iteración.

• Sentencia TRY, CATCH: normalmente se ejecutan las sentencias A, pero si ocurre algún tipo de error en dichas sentencias, encones se ejecutan las sentencias B.

try sentencias Acatchsentencias Bend

for i=1:nsentenciasif condición2 continueendsentencias Bend

Page 77: Matlab Basico

Programación en MATLABLectura Y escritura interactiva de variables

• Para la lectura de variables se ocupa la función ‘input’ la cual imprime un mensaje en pantalla e inmediatamente después se queda en espera de un valor de cualquier tipo manejado por MATLAB.

• Para la escritura de variables se ocupa la función ‘disp’ la cual puede imprimir el contenido de cualquier tipo de variable en la pantalla del command window.

val=input(‘da un valor: ‘)cad=input(‘da una cadena: ‘, ‘s’)

disp(val)disp(‘fin del programa’)

Page 78: Matlab Basico

Programación en MATLABArchivos m tipo scripts

• Cuando se escribe un programa en MATLAB, éste es guardado como un archivo M cuya extensión es *.m . Existen dos tipos de archivos M: los scripts y las funciones:– Un archivo script es un archivo externo que contiene una

secuencia de sentencias de MATLAB, también son la forma más simple de realizar un programa ya que no tienen argumentos de entrada o salida. Por otro lado, los scripts comparten totalmente el workspace de MATLAB, es decir, se pueden acceder o crear variables en el workspace desde el archivo script.

– Para ejecutar un archivo script basta con escribir el nombre del archivo M en el command window y dar ENTER.

Page 79: Matlab Basico

Programación en MATLABArchivos m tipo función

• Una función sirve para agregar nuevas funciones a las ya conocidas en MATLAB. Son rutinas de programa que aceptan argumentos tanto de entrada como de salida. Las funciones operan con variables dentro de su propio workspace, es decir, las variables definidas dentro de una función son “variables locales”.

• Para que la función tenga acceso a variables que no han sido pasadas como argumentos es necesario declarar dichas variables como “variables globales”.

• En cualquier función de MATLAB existen dos variables definidas de modo automático, llamadas nargin y nargout, que representan respectivamente el número de argumentos de entrada y el número de valores de retorno.

Page 80: Matlab Basico

Programación en MATLABArchivos m tipo función

• Varargin es un cell array que contienen tantos elementos como sean necesarios para poder recoger en dichos elementos todos los argumentos de entrada.

• Varargout es también un cell array que agrupa los valores de retorno de la función.

• Una archivo m tipo función se asigna como tal con un encabezado

• Ejemplos de posibles encabezados de una función:

function varargout=fun1(varargin)function [r1 r2 varargout]=fun2(a1,a2,varargin)

Function “variables y

argumentos de salida”

=“nombre de función”

(debe ser el mismo nombre que el archivo m)”

(“variables de entrada y argumentos”)

function res=fun1(a,b)function [r1 r2 r3]=fun2(a,b)

Page 81: Matlab Basico

Programación en MATLABFunction handles

• Un function handle es un valor de MATLAB que proporciona un medio de llamar a una función de una forma indirecta. El principal uso de este tipo de funciones es el de pasar a una función el nombre de otra función junto con sus argumentos, para que la pueda ejecutar

• El uso más frecuente de un handle es para las funciones anónimas.

fhandle = @functionname

>>fseno=@sin ahora la función ‘fseno’ funciona exactamente igual a la función “sin”

>>fseno(pi) hace lo mismo que “sin(pi)”>>f1=@spice se crea un handle f1 del script “spice.m” >>f1() ejecuta el archivo spice.m

Page 82: Matlab Basico

Programación en MATLABPráctica

Programación con matlab

Page 83: Matlab Basico

Programación en MATLABEjecución en modo “paso a paso”

Para este tipo de ejecución es imprescindible colocar un breakpoint en la parte del programa en la que queramos que se detenga la ejecución.

Set/Clear Breakpoint. Coloca o borra un breakpoint.

Clear All Breakpoints. Elimina todos los breakpoints del archivo.

Step. Avanzar un paso sin entrar en las funciones o subfunciones de usuario.

Step In. Avanzar un paso, y si en ese paso hay una llamada a una función cuyo fichero entra en dicha función.

Step Out. Salir de la función que se está ejecutando en ese momento (la función a la que entró el step in).

Continue. Continuar la ejecución hasta el final o hasta el siguiente breakpoint.

Quit Debugging. Terminar la ejecución paso a paso del Debugger.

Page 84: Matlab Basico

Programación en MATLABEjecución en modo “celdas”

Este tipo de ejecución permite ejecutar el programa por “secciones” llamadas celdas, de tal forma que se puede ejecutar mi código por estas secciones o bloques paso a paso. Este modo de ejecución puede ser controlado por el menú Cell del Editor/Debugger.

Pasos para una ejecución en modo de celdas:1. Habilitar el “modo de celda” del Editor/Debugger.2. Definir los bloques o celdas con el signo de doble por ciento (%

%)3. Ejecutar las celdas de acuerdo a las siguientes opciones:

Evaluate Cell. Evalúa la celda o el bloque completo y se mantiene ahí.Evaluate Cell and Anvance. Evalúa la celda y avanza a la siguiente.Evaluate Entire File. Evalúa todo el archivo.

Page 85: Matlab Basico

Programación en MATLABCorrector de código m-lint

• El “reporte de chequeo de código” llamado M-Lint es una herramienta que muestra problemas y errores potenciales en el código de nuestro programa, también muestra ciertos consejos para el mejoramiento del código.

• La herramienta M-Lint muestra un mensaje por cada línea en donde haya cierto problema y determina como se puede mejorar esa línea de código.

Page 86: Matlab Basico

Programación en MATLABPublicación de archivos

• Cuando se haya completado la escritura y el depurado del script M se puede hacer la publicación del archivo en diferentes formatos: HTML, XML, LaTeX, Word o Power Point.

Page 87: Matlab Basico

Programación en MATLABPráctica

Modos de ejecución, corrector de código y

publicación de archivos

Page 88: Matlab Basico

Programación en MATLABLectura/escritura de archivos

• MATLAB dispone de varias funciones para la lectura y escritura interactiva de archivos (principalmente tipo texto).

• Algunas de las funciones más elementales y de mayor uso son:

fopen.- para abrir un archivo tipo texto. fclose.- para cerrar un archivo tipo texto. fscanf.- lee el contenido de un archivo. feof.- verifica el fin de un archivo. textread.- lee el contenido de un archivo sin necesidad de abrirlo. fprintf.- imprime directamente dentro de un archivo.

Page 89: Matlab Basico

Validación de conocimientos

Laboratorios

Page 90: Matlab Basico

• Realice un programa siguiendo los siguientes pasos:1. Declarar una matriz arbitraria.2. Realizar 5 operaciones a dicha matriz (Inversa, eigenvalores, acceso a

elementos, etc.)3. Realizar una publicación debidamente organizada y en formato html.

• El principal objetivo de este laboratorio es que el alumno realice un “tutorial” en donde pueda ir explicando paso a paso como trabajan las funciones en MATLAB y lo más importante es que no tendrá que ir ‘copiando-pegando’ para realizar el reporte de su trabajo.

Lab 1

Page 91: Matlab Basico

• Realizar un simulador de circuitos tipo SPICE que trabaje solamente con circuitos en DC, resistencias, fuentes de voltaje y fuentes de corriente.

• El programa obtendrá la información del archivo ‘cir.txt’ y presentará los resultados en otro archivo llamado ‘rescir.txt’

• Las especificaciones se darán en clase.

Lab 2