universidad nacional de tucumán facultad de ......prom = (n1+n2+n3)/3 escribir prom prom...

54
Universidad Nacional de Tucumán FACULTAD DE CIENCIAS EXACTAS Y TECNOLOGIA

Upload: others

Post on 26-Jan-2021

6 views

Category:

Documents


1 download

TRANSCRIPT

  • Universidad Nacional de Tucumán

    FACULTAD DE CIENCIAS EXACTAS

    Y TECNOLOGIA

    http://www.unt.edu.ar/http://www.unt.edu.ar/

  • SCRIPT * m-FILES * ARCHIVOS-m

    MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    Scripts (m-files) son archivos de texto con código Matlab para la ejecución en forma secuencial de comandos.

    Tienen extensión .m, por ejemplo

    nombre.m

  • SCRIPT * m-FILES * ARCHIVOS-m

    MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    Las Scripts (m-files)

    pueden crearse con

    cualquier editor de

    texto, pero Matlab tiene

    su propio editor, como

    en los compiladores fortran, C,

    etc.

  • SCRIPT * m-FILES * ARCHIVOS-m

    MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    Barra de menúsBarra de Herramientas

    Coloreado automático

    Barra de stastus

    Editor de múltiples archivos

    Ubicación del cursor

    Indentanción automática

  • MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    ELEMENTOS DE UN PROGRAMA

    Un algoritmo consta dedatos y de sentencias

    DATOS

    Se almacenan en variables y constantes yse involucran en operaciones

    SENTENCIAS

    Describen las acciones que deben serejecutadas (cálculos, entradas/salidas ycontrol de flujo del algoritmo)

    DATOS DE ENTRADA PROCESO

    DATOS DE SALIDA

  • MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    EJEMPLO DE PROGRAMA

    Algoritmo para calcular elpromedio de 3 calificaciones

    DATOS DE ENTRADA

    PROCESO

    DATOS DE SALIDA

    N1, N2, N3

    Leer N1, N2, N3Prom = (N1+N2+N3)/3Escribir Prom

    Prom

  • PROGRAMACIÓN EN MATLAB

    MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    Estructuras de MATLAB para generar programas

    Lazo WHILE

    Estructuras IF – ELSE

    Lazo FOR

    Estructura SWITCH

  • PROGRAMACIÓN EN MATLAB

    MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA Estructuras IF – ELSE

    Existen tres posibilidades para esta estructura condicional

    ESTRUCTURA IF SIMPLE

    Condicion

    Sentencias

    Cierta

    Falsa

    if condición lógica

    sentencias si la

    condición es cierta

    ......

    end

  • Condicion

    Sentencias

    Cierta

    Falsa

    Sentencias

    PROGRAMACIÓN EN MATLAB

    MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA Estructuras IF – ELSE

    ESTRUCTURA IF CON ALTERNATIVA

    if condición lógica

    sentencias si la

    condición es cierta

    ......

    else

    sentencias si la

    condición es falsa

    ......

    end

  • Condicion

    Sentencias

    Cierta

    Falsa

    Sentencias

    Condicion

    Sentencias

    Falsa

    Cierta

    PROGRAMACIÓN EN MATLABM

    AG

    IST

    ER

    EN

    ME

    TO

    DO

    S N

    UM

    ER

    ICO

    S Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    Estructuras IF – ELSE

    ESTRUCTURA IF CON ALTERNATIVAS MULTIPLES

    if condición lógica 1

    sentencias si la

    condición 1 es cierta

    ......

    elseif condición lógica 2

    sentencias si la

    condición 2 es cierta

    ......

    else

    sentencias si las demás

    condiciones son falsas

    ......

    end

    Si no existe, significa que no se hace nada en caso de que no se cumplan las otras condiciones

  • PROGRAMACIÓN EN MATLAB

    MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    Estructura SWITCH

    switch expresion

    case caso1,

    Sentencias si

    expresion = caso1

    case {caso2, caso3, ...}

    Sentencias si

    expresion = caso2 o caso3

    o ...

    otherwise,

    Sentencias si expresión no

    no es igual a ninguno de

    los anteriores

    end

    Debe dar como resultado un escalar o una

    tira de caracteres

  • MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    PROGRAMACIÓN EN MATLAB

    Estructura SWITCH

    Estructuras IF – ELSE

  • PROGRAMACIÓN EN MATLAB

    MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    for var = expresion

    Sentencias

    para todos los

    valores de var

    endSirve para determinar el

    número de veces y el valor que asumirá la variable var en cada ejecucion de las

    sentencias

    Lazo FOR

    El lazo FOR repite un grupo de sentencias un número prefijado de veces.

  • PROGRAMACIÓN EN MATLAB

    MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    Lazo FOREjemplos

    for i = 1:n

    sentencias

    end

    for i = vectorValores

    sentencias

    end

    for i = n:-0.2:1

    sentencias

    end

    for i = 1:m

    for j = 1:n

    sentencias

    end

    end

  • Condición

    Sentencias

    Cierta

    Falsa

    PROGRAMACIÓN EN MATLAB

    MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    while condición lógica

    sentencias que se

    ejecutan si la

    condición es cierta

    ......

    end

    Lazo WHILE

  • MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    PROGRAMACIÓN EN MATLAB

    Sentencia CONTINUE

    Hace que se pase inmediatamente a la siguiente iteración en un lazo for o while

    Sentencia BREAK

    Termina la ejecución de un

    lazo for o while

    »a = 0; fa = 8;

    »b = 3; fb = -4;

    »while b-a > eps + b

    » x = (a+b)/2;

    » fx = x^3 - 5x^2 + 2x + 8;

    » if fx == 0

    » break

    » elseif sign(fx)== sign(fa)

    » a = x; fa = fx;

    » else

    » b = x; fb = fx;

    » continue

    » end

    » fy = fx-0.8*x;

    »end

    »x = 2.8*fy;

  • input: Imprime un mensaje en la línea de comandos y recupera como valor de retorno un valor numérico o el resultado de una expresión tecleada por el usuario

    MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    PROGRAMACIÓN EN MATLAB

    disp: imprime en pantalla un mensaje de texto o el valor de una matriz, pero sin imprimir su nombre

    Lectura y Escritura interactiva de variables

  • MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    PROGRAMACIÓN EN MATLAB

    Archivos BinariosINPUT/OUTPUT

    fopen: abre un archivo para lectura y/o escritura

    fclose: cierra uno o más archivos

    fread: lee desde un archivo datos binarios

    fwrite: escribe datos binarios en un archivo

    » fid= fopen('mydata.bin' , 'w');

    » fwrite (fid,eye(5) , 'int32');

    » fclose (fid);

    » fid= fopen('mydata.bin' , 'r');

    » M= fread(fid, [5 5], 'int32')

    » fclose (fid);

  • MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    PROGRAMACIÓN EN MATLAB

    Archivos Binarios o noINPUT/OUTPUT

    save: guarda variables del workspace (formato binario de Matlab o texto ascii)

    load: carga variables en el workspace desde unarchivo binario de Matlab o texto ascii

    » load misdatos

    » load ‘tusdatos.txt’ -ascii;

    » save 'indices.sal' SVn SV -ascii

    » save

  • MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    PROGRAMACIÓN EN MATLAB

    ArchivosINPUT/OUTPUT

    ALMACENAMIENTO

    EN

    ARCHIVOS

    PROGRAMA

    EN EJECUCIONWORKSPACE

    Datos

    fwrite

    fread

    save

    load

    sentencias

  • MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    PROGRAMACIÓN EN MATLAB

    FORMATEO DE LAS SALIDAS

    fprintf: dirige su salida a un fichero (o pantalla)con un formato establecido

    fprintf(fi,’tira de caracteres’,var1, var2, ...)

    Identificador del archivo Texto y formato de los datos Variables

    » fprintf(fi,’alpha = %f6.3n\’,alpha2)

    » fprintf(’Iteracion = %d3n\’,iter)

  • MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    PROGRAMACIÓN EN MATLAB

    PARA TENER EN CUENTA

    Antes de programar, se debe tener en claro que es lo que se pretende con el programa (Objetivo)

    Recuerde lo que le enseñaban en la escuela cuando debian redactar un cuento (presentación, nudo y deselace). Cuando programe, primero vea como intorduce los datos, luego analice la secuencia de operaciones y el deselace es la forma en la que presenta los resultados.

    Documente ampliamente sus programas. Siempre empiece dicendo que es lo que hace el programa, que entradas tiene y que resultados proprociona.

    Los comentarios de inicio estan disponibles a traves del help contextual

  • MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    PROGRAMACIÓN EN MATLABPrograma en un

    lenguaje de alto nivel

    COMPILACION LINK

    Programa en código fuente

    Programa en lenguaje de

    máquina EJECUCION(RUN)

    Programa ejecutable

    Datos

    Resultados

    COMPILACION LINK

    Programa en código fuente

    Programa en lenguaje de

    máquina EJECUCION(RUN)

    Programa ejecutable

    Datos

    Resultados

    Programa que corre en Matlab

  • FUNCIONES

    Toda función tiene:- nombre- valores de retorno (pueden no existir)- argumentos (pueden no existir)

    Los valores de retorno pueden ser matrices

    Número variable de argumentos y de valores de retorno

    Para crear una funcion se debe generar un archivo especial. Las variables de un archivode función son locales.

    MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

  • FUNCIONES

    MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA Para usar la función “func”:

    y = func(x1,x2, …, xN)

    [y1, y2, …, yM] = func(x1,x2, …, xN)

    Para crear la función “func” hay queescribir el archivo func.m que empiezacon la sentencia function:

    function y = func(x1,x2, …, xN)

    function [y1,y2, …,yM] = func(x1,x2, …,xN)

  • FUNCIONES

    MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA function salida=nombre_funcion(entrada)

    % Explicación de lo que la función

    sentencias

    sentencias

    Salida = valor a retornar;

    function [s1,..,sn]=nombre_funcion(e1,..,em)

    % Explicación de lo que la función

    sentencias

    sentencias

    s1 = valor a retornar;

    ...

    sn = valor a retornar;

    Guardar en un archivo con el nombre de la

    función y extensión .m

    ¡OJO!

  • FUNCIONES

    MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    function Vol = VolCon(D,h)

    % Función para calcular el volumen de un

    % cono. Argumentos: D (diámetro) y h (altura)

    Vol = pi*D^2/4*h/3; Archivo VolCon.m

    Como se crea:

    Como se usa:

    Sentencia

    Volumen = VolCon(Diametro,altura);

    Sentencia

    Dentro de un programa

    >>

    >> VolCon(D,1.8);

    ans =

    2.783

    >>

    En ventana de comandos

  • FUNCIONES

    MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    PROGRAMA PRINCIPAL

    QUE USA

    FUNCION VolCon

    Workspace

    FUNCION VolCon

    Workspace Local

    Acceso a las variables del

    programa principal a través de

    Matlab en forma directa

    Solo se accede a las

    variable locales a

    través el Debugger

    La sentencia global permite asociar variables de distintos espacios de trabajo.

    Las variables declaradas persistent mantienen los valores en los espacios de trabajo locales

  • TIPOS DE FUNCIONES

    MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA INTRÍNSECAS DE MATLABIncorporadas en el propio código del programa. Rápidas y eficientes. Ejemplo: exp, atan, sin, etc

    DE LA BIBLIOTECA DE MATLABFunciones definidas en archivos *.m o *.mex que vienen con el programa y sus toolboxes.Ejemplo: bode, lu, svd, etc.

    DEFINIDAS POR EL USUARIOGeneradas en archivos *.m o *.mex.Ejemplo: VolCon (archivo VolCon.m)

  • >> x=round(11*rand(1,10))

    x =

    2 9 7 9 7 1 2 1 5 1

    MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    EJEMPLOS DE FUNCIONES

    >> maximo=max(x)

    maximo =

    9

    >> [maximo, posicion] = max(x)

    maximo =

    9

    posicion =

    2

    >> max(x)

    ans =

    9

  • Los nombres de las funciones no son palabras reservadas en Matlab. El usuario puede definir su propia función max o sin o cos, pero...

    Los argumentos pueden ser expresiones y llamadas a otra función:

    >> sin(cos([0:0.1:100]*2*pi))

    MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    FUNCIONES ¡OJO!

  • FUNCIONES DE LA BIBIOTECA DE MATLAB

    Matemáticas elementalesEspecialesMatricialeselementalesespecíficasFactorizaciónEstadística

    Análisis polinomiosIntegración ecuaciones diferencialesResolución ecuacionesOptimizaciónIntegración numéricaProcesado de señal

    ...

    MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

  • FUNCIONES MATEMÁTICAS(intrínsecas)

    » 1+sin(pi/6)/(2+cos(pi/12))

    ans =

    1.1686

    »

    sqrt(1+tan(pi/12)/(1+sin(pi/2)))

    ans =

    1.0649

    » a=15.3;

    » b=12;

    » teta1=tan(b/a)^-1

    teta1 =

    1.0022

    » teta2=1/tan(b/a)

    teta2 =

    1.0022

    MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

  • > log(100)

    ans =

    4.6052

    >> log10(100)

    ans =

    2

    >> exp(4.6052)

    ans =

    100.0030

    >> z=3+4j

    z =

    3.0000 + 4.0000i

    >> real(z)

    ans =

    3

    >> imag(z)

    ans =

    4

    >> abs(z)

    ans =

    5

    MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    FUNCIONES MATEMÁTICAS(intrínsecas)

  • a =

    8 6 9 2

    4 8 7 4

    >> sin(a)

    ans =

    0.9894 -0.2794 0.4121 0.9093

    -0.7568 0.9894 0.6570 -0.7568

    >> b=fix(rand(3,4)*100)

    b =

    99 23 35 44

    18 51 18 74

    31 50 88 60

    Las operaciones elementales

    trabajan tanto con escalares

    como con matrices

    MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    FUNCIONES MATEMÁTICAS

  • FUNCIONES Entrada/Salida

    » nfilas=input('Nro de filas: ')

    Nro de filas: 3

    nfilas =

    3

    » matriz=input('Introduce matriz: ')

    Introduce matriz: [1 2 3; 4 5 6]

    matriz =

    1 2 3

    4 5 6

    » 'hola'

    ans =

    hola

    » display('Hola');

    ans =

    Hola

    » disp('Hola');

    HolaMA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    inputdisplaydisp

  • FUNCIONES MATEMÁTICAS ELEMENTALES

    MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    sin(x), cos(x), tan(x), asin(x), acos(x),

    atan(x), log(x), log10(x), exp(x), sqrt(x),

    sign(x), rem(x,y), mod(x,y), real(x), imag(x),

    abs(x), angle(x), etc.

    Funciones que operan de modo escalar

    min(x), sum(x), cumsum(x), mean(x), std(x),

    cumprod(x), [y,i]=sort(x)

    Funciones que actúan sobre vectores

  • FUNCIONES QUE ACTÚAN SOBRE MATRICES

    MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    B = A’

    B = A.’

    v = poly(A)

    t = trace(A)

    [m,n] = size(A)

    n = size(A)

    nf = size(A,1)

    nc = size(A,2)

    Funciones matriciales elementales

    sqrtm(A)

    Devuelve una matriz que multiplicada por sí misma da la matriz

    Alogm()

    Es la recíproca de expm

    Funciones matriciales especiales

  • FUNCIONES PARA CÁLCULOS CON POLINOMIOS

    106x8xxP(x) 24

    MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    En esencia un polinomio es tratado como un vector fila.

    El primer elemento del vector es el coeficiente del término que define el grado del polinomio.

    El último elemento es el término independiente del polinomio.

  • FUNCIONES PARA CÁLCULOS CON POLINOMIOS

    106x8xxP(x) 24

    Definición de polinomios

    Cálculo de raíces

    Evaluación

    MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

  • Los identificadores de función (function handles)constituyen un mecanismo para referirse a un nombrede función. El principal uso es pasar a una función elnombre de otra función, junto con sus argumentos,para que la pueda ejecutar.

    MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    IDENTIFICADOR DE FUNCIONES

    EjemploLa función quad es genérica, calcula, mediante métodosnuméricos, integrales definidas. Para que pueda calcular laintegral hay que proporcionarle la función a integrar. Porejemplo, cálculo de la integral entre 0 y π de la funciónseno(x):

    Ahora fh es una variable que se identifica con la función seno.También podría haberse llamado directamente:

    fh = @sin; area=quad(fh,0,pi);

    area=quad(@sin,0,pi);

  • Una función anónima es una función que se almacenadentro de un archivo. Las funciones anónimas puedenaceptar entradas y salidas de retorno, tal como lohacen las funciones estándar. Sin embargo, solopueden contener una sola línea como instrucciónejecutable.

    MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    FUNCIONES ANÓNIMAS

    >> sqr = @(x) x.^2;

    >> a = sqr(4)

    a =

    16

    >> b = sqr([1 2 3])

    b =

    1 4 9

    Ejemplo

    Crear un identificador para una función anónima que encuentre el cuadrado de un número:

  • OTROS TIPOS DE DATOS

    Conjuntos o cadenas de caracteres

    Hipermatrices

    Estructuras

    Vectores o matrices de celda

    Matrices dispersas

    MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

  • MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    GRAFICOS EN MATLAB

  • ¿Cómo se crea un gráfico?

    >> x = 0:pi/100:2*pi;

    >> y = sin(x);

    >> plot(x,y)

    GRAFICOS EN MATLAB

    MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    Se abre una ventana

    (Figure 1)

  • >> x = 0:pi/100:2*pi;

    >> y = sin(x);

    >> y2 = sin(x -.25);

    >> y3 = sin(x -.5);

    >> plot(x,y,x,y2,x,y3)

    >> legend('sin(x)','sin(x-.25)','sin(x-.5)')

    MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    Con varios grupos de

    datos

    GRAFICOS EN MATLAB

  • MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    Estilo de lineas,

    colores y marcadores

    GRAFICOS EN MATLAB

    >> x2 = 0:pi/10:2*pi;

    >> x1 = 0:pi/100:2*pi;

    >> plot(x1, sin(x1),'r:',x2,sin(x2),‘b+')

  • >> x= 0:pi/100:2*pi;

    >> y1=sin(x);

    >> y2=cos(x);

    >> figure(1)

    >> plot(x, y1,'b')

    >> figure(2)

    >> plot(x, y2,'m')

    MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    Gráficos múltiples

    GRAFICOS EN MATLAB

    ¿Qué pasa si se ejecuta el comando close all?

  • MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    Gráficos múltiples

    GRAFICOS EN MATLAB

    >> close all

    >> subplot(2,2,1);

    >> plot(x, y1,'r')

    >> subplot(2,2,2);

    >> plot(x, y2,'b')

    >> subplot(2,2,3);

    >> plot(x, y1,'g')

    >> subplot(2,2,4);

    >> plot(x, y2,'k')

    Se abre una sola ventana

    (Figure 1)

  • >> figure(2)

    >> plot(x, y1, x, y2, x, y1+y2)

    >> axis([0 2*pi -1.5 1.5])

    >> grid on

    Variantes:

    axis auto

    axis off

    axis on

    axis equal

    axis square

    MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    Control de los ejes

    GRAFICOS EN MATLAB

  • >> x1=[0:0.1:2*pi];

    >> y1=1.2*sin(x1).^2;

    >> x2=[0.3:0.01:2.1*pi];

    >> y2=0.8*cos(x2).^2-0.1;

    >> plot(x1,y1,x2,y2,'linewidth',2)

    >> title(‘Gráfico Muestra’,’fontsize’,14);

    >> xlabel(‘Valores de X’);

    >> ylabel(‘Valores de Y’);

    >> legend(‘Serie y1’,’Serie y2’)

    >> grid

    MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    Títulos y referencias

    GRAFICOS EN MATLAB

  • MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    Títulos y referencias

    GRAFICOS EN MATLAB

    title

    ylabel

    xlabel

    grid

    legend

  • MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    Facilidades en la ventana de la figura

    GRAFICOS EN MATLAB

    Todo lo que se realiza por

    comandos, se puede hacer

    “manualmente”empleando el menú de la

    ventana de la figura

  • MA

    GIS

    TE

    R E

    N M

    ET

    OD

    OS

    NU

    ME

    RIC

    OS

    Y

    CO

    MP

    UTA

    CIO

    NA

    LE

    S E

    N I

    NG

    EN

    IER

    IA

    OTROS GRAFICOS

    GRAFICOS EN MATLAB

    plot - Gráfico 2-D, escalas lineales en los dosejes

    loglog - Gráfico 2-D, escalas logarítmica en ambos ejes

    semilogx - Gráfico 2-D, escala logarítmica enel eje x y lineal en el eje y

    semilogy - Gráfico 2-D, escala logarítmica enel eje y y lineal en el eje x

    plotyy - Gráfico 2-D, con dos ordenadas (a izquierda y derecha)