Matlab Basico

Post on 22-Nov-2014

146 views 1 download

Transcript of 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

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

Índice

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

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.

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.

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.

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.

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.

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

Índice

Fundamentos de MATLABVentana estándar

1

32

4

5

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)

Fundamentos de MATLABPráctica

Uso del Help en MATLABy

Funciones para el Help

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

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.

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

Índice

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]

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.

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”.

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

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)

Matrices, vectores y funciones matemáticas

Práctica

Declaración de matrices y vectoresOperaciones Aritméticas

yManejo de expresiones

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.

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.

Matrices, vectores y funciones matemáticas

Práctica

Representación numéricay

Números complejos

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

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

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)

Matrices, vectores y funciones matemáticas

Práctica

Funciones que actúan sobrematrices y vectores

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

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

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=

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=

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.

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

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

Matrices, vectores y funciones matemáticas

Práctica

Ejemplos de direccionamientoOperador dos puntos

yOperadores lógicos y relacionales

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)

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

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)

Matrices, vectores y funciones matemáticas

Práctica

Funciones matemáticasy

Polinomios

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

Índice

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.

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”

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')

Symbolic Math ToolboxPráctica

Creación de variables y expresiones simbólicas

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

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

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

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)

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’)

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)

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

Symbolic Math ToolboxAplicaciones en Cálculo

• Graficación simbólica:

ezplot (f)

Symbolic Math ToolboxPráctica

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

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

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’.

Symbolic Math ToolboxPráctica

Solución de ecuaciones

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

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

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

Índice

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

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.

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.

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.

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.

Tipos de datos en MATLABPráctica

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

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

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];

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

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 ';

Tipos de datos en MATLABPráctica

Estructuras y arreglos de celda

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

Índice

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

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

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

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

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’)

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.

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.

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)

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

Programación en MATLABPráctica

Programación con matlab

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.

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.

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.

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.

Programación en MATLABPráctica

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

publicación de archivos

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.

Validación de conocimientos

Laboratorios

• 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

• 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