MatLab
Instrucción  if if   expresión lógica instrucciones end Sí la  expresión lógica  es verdadera, ejecutamos las instrucciones que están entre la instrucción  if  y la instrucción  end Si la  expresión lógica  es falsa, saltamos de inmediato a la instrucción que sigue a  end
Instrucción  if Es importante sangrar las instrucciones dentro de la estructura if para que sea más fácil de entender if g < 50 contar = contar + 1; disp(g); end
Operadores Relacionales y Lógicos No igual ~= Igual == Mayor o igual que >= Mayor > Menor o igual que <= Menor que < Interpretación Operador relacional
Operadores Relacionales y Lógicos Estos operadores comparan dos matrices de igual tamaño Se usan matrices o expresiones de matrices en ambos lados de un operador relacional para dar otra matriz del mismo tamaño Cada entrada de la matriz resultante contiene un 1 si la comparación es verdadera cuando se aplica a los valores de las posiciones correspondientes de las matrices; caso contrario, la matriz resultante contiene un 0
Operadores Relacionales y Lógicos
Operadores Relacionales y Lógicos Una expresión que contiene un operador relacional es una expresión lógica porque el resultado es una matriz que contiene ceros y unos que pueden interpretarse como valores falsos y verdaderos, respectivamente La matriz resultante también se denomina matriz 0-1
Operadores Relacionales y Lógicos También podemos combinar dos expresiones lógicas usando operadores lógicos no ( not ), y ( and ) y o ( or ) | o & y ~ no Símbolo Operador Lógico
Operadores Relacionales y Lógicos
Ejercicio 18 Determine si las siguientes expresiones son verdaderas o falsas Suponga que las variables tienen los valores indicados: a = 5.5 b = 1.5 k = -3
Ejercicio 19 a < 10.0 a + b >= 6.5 k ~= 0 b – k > a ~(a == 3 * b) ~k <= k + 6 a < 10 & a > 5 abs(k) > 3 | k < b - a
Instrucciones  if  anidadas if g < 50 contar = contar + 1; disp(g); if b > g   b = 0; end end
Cláusula  else Permite ejecutar un conjunto de sentencias si la condición es verdadera y otro conjunto de sentencias si la condición es falsa if intervalo < 1 x_inc = intervalo / 10; else x_inc = 0.1; end
Cláusula  elseif if temperatura > 100 disp(‘Demasiado caliente – Falla de equipo’) elseif temperatura > 90 disp(‘Intervalo operativo normal’) elseif temperatura > 50 disp(‘Temperatura por debajo del intervalo deseado’) else disp(‘Demasiado frío – Apagar equipo’) end
Ejercicio 20 Suponga que las variables son escalares Si la diferencia entre  volt_1  y  volt_2  es mayor que 10.0, exhibir los valores de  volt_1  y  volt_2 Si el logaritmo natural de  x  es mayor que 3, asignar 0 a tiempo e incrementar  contar  en 1
Ejercicio 20 Si  dist  es menor que 50.0 y  tiempo  es mayor que 10.0, incrementar  tiempo  en 2; caso contrario incrementar  tiempo  en 2.5 Si  dist  es mayor o igual que 100.0, incrementar  tiempo  en 2.0. Si  dist  está entre 50 y 100, incrementar  tiempo  en 1. En los demás  casos, incrementar  tiempo  en 0.5
Solución de Ecuaciones Lineales Considere el siguiente sistema de tres ecuaciones con tres incógnitas:
Solución de Ecuaciones Lineales Podemos reescribir este sistema de ecuaciones utilizando las siguientes matrices:
Solución de Ecuaciones Lineales Si usamos multiplicación de matrices, el sistema de ecuaciones puede escribirse de esta forma: A X = B Si modificamos nuestra notación de modo que las variables se designen como x 1 , x 2 , x 3 , etc., y reescribimos el conjunto inicial de ecuaciones, tenemos:
Solución de Ecuaciones Lineales Este conjunto de ecuaciones se representa entonces con la ecuación A X = B, donde X es el vector columna [x 1  x 2  x 3 ] T
Solución de Ecuaciones Lineales Se usa generalmente la ecuación de matrices A X = B para expresar un sistema de ecuaciones; sin embargo, también podemos expresarlo usando vectores fila para B y X.
Solución de Ecuaciones Lineales Por ejemplo, considere el conjunto de ecuaciones que empleamos en el ejemplo anterior, podemos escribir el conjunto de ecuaciones como XA = B, si X, A y B se definen como: (Observe que la matriz A es la transpuesta del ejemplo anterior)
División de Matrices Podemos definir y resolver el sistema de ecuaciones del ejemplo anterior usando la ecuación de matrices A X = B como se muestra en la siguiente diapositiva:
División de Matrices
División de Matrices También podemos definir y resolver el mismo sistema de ecuaciones usando la ecuación de matrices X A = B, como se muestra a continuación:
División de Matrices
División de Matrices Para poder aplicar estas técnicas, el sistema debe ser cuadrado. Si un conjunto de ecuaciones es singular, se exhibe un mensaje de error; el vector de soluciones puede contener valores de NaN, + ∞ o -∞, dependiendo de los valores de las matrices A y B Estos sistemas se denominan Sistemas mal condicionados, MatLab calcula una solución, pero exhibe un mensaje de advertencia para indicar que los resultados podrían ser inexactos
Inversión de Matrices También podemos resolver un sistema de ecuaciones usando la inversa de la matriz A, siempre y cuando exista dicha inversa. Por ejemplo, supongamos que A, X y B son las matrices que definimos antes:
Inversión de Matrices Entonces, A X = B Suponga que multiplicamos ambos lados de la ecuación por A -1 , tenemos entonces: A -1  A X = A -1  B Dado que A -1  A es igual a la matriz identidad (I), tenemos: I X = A -1  B O sea: X = A -1  B
Inversión de Matrices En MatLab podemos calcular esta solución utilizando el comando: X = inv(A) * B Este mismo sistema de ecuaciones puede resolverse también usando la inversa de una matriz si el sistema se expresa en la forma: X A = B Donde:
Inversión de Matrices Si multiplicamos ambos lados de la ecuación por A -1 , tenemos: X A A -1  = B A -1 Puesto que A A -1  es la matriz identidad (I), tenemos:
Inversión de Matrices X I = B A -1 O sea: X = B A -1 En MatLab, podemos calcular esta solución con el comando: X = B * inv(A)
Ejercicio 21 Resuelva los siguientes sistemas de ecuaciones usando división de matrices y matrices inversas. Para cada sistema que contenga ecuaciones de dos variables, grafique las ecuaciones para mostrar la intersección o bien para mostrar que el sistema es singular y no tiene solución única
Ejercicio 21
Ejercicio 21
Scripts Un  script  es una secuencia de instrucciones de Matlab guardada en un archivo con extensión  .m Se ejecuta escribiendo su nombre:
Funciones (llamada) Las funciones puede recibir varios valores y devolver varios resultados [m,d]=med_des(x); Puede haber argumentos opcionales mit=imread('cameraman.tif','TIFF'); mit=imread('cameraman.tif'); No es necesario asignar todos los valores retornados [mit,map]=imread('imageman.gif'); mit=imread('imageman.gif');
Funciones (definición) Las funciones se escriben en archivos .m que deben encontrarse en el directorio actual (o en un directorio definido en el path)
Funciones La variable  nargin  (local de la función) es el número de argumentos recibidos. La variable  nargout  (local de la función) es el número de argumentos que se recogerán en la llamada. Puede ahorrarnos unos cálculos. Todos los argumentos llegan por valor, no es posible hacer paso por referencia. Los scripts comparten las variables del workspace, mientras que las funciones utilizan variables en local
Expresiones lógicas Operadores relacionales: ~= == > < >= <= Operadores lógicos: && Short-circuit AND || Short-circuit OR & AND | OR Hay una función xor, pero no es un operador
Control de Flujo: if bloque if A diferencia de C, en Matlab no es necesario utilizar paréntesis en la expresión lógica
Control de Flujo: for bucle for
Control de Flujo: while bucle while
Control de Flujo: switch switch-case A diferencia de C, en Matlab no hace falta utilizar break.
Control de Flujo: try try-catch Las instrucciones comprendidas entre  catch  y  end  sólo se ejecutan si se produce un error en las primeras. Utilizar  lasterr  para ver el último error.

Mat lab05

  • 1.
  • 2.
    Instrucción ifif expresión lógica instrucciones end Sí la expresión lógica es verdadera, ejecutamos las instrucciones que están entre la instrucción if y la instrucción end Si la expresión lógica es falsa, saltamos de inmediato a la instrucción que sigue a end
  • 3.
    Instrucción ifEs importante sangrar las instrucciones dentro de la estructura if para que sea más fácil de entender if g < 50 contar = contar + 1; disp(g); end
  • 4.
    Operadores Relacionales yLógicos No igual ~= Igual == Mayor o igual que >= Mayor > Menor o igual que <= Menor que < Interpretación Operador relacional
  • 5.
    Operadores Relacionales yLógicos Estos operadores comparan dos matrices de igual tamaño Se usan matrices o expresiones de matrices en ambos lados de un operador relacional para dar otra matriz del mismo tamaño Cada entrada de la matriz resultante contiene un 1 si la comparación es verdadera cuando se aplica a los valores de las posiciones correspondientes de las matrices; caso contrario, la matriz resultante contiene un 0
  • 6.
  • 7.
    Operadores Relacionales yLógicos Una expresión que contiene un operador relacional es una expresión lógica porque el resultado es una matriz que contiene ceros y unos que pueden interpretarse como valores falsos y verdaderos, respectivamente La matriz resultante también se denomina matriz 0-1
  • 8.
    Operadores Relacionales yLógicos También podemos combinar dos expresiones lógicas usando operadores lógicos no ( not ), y ( and ) y o ( or ) | o & y ~ no Símbolo Operador Lógico
  • 9.
  • 10.
    Ejercicio 18 Determinesi las siguientes expresiones son verdaderas o falsas Suponga que las variables tienen los valores indicados: a = 5.5 b = 1.5 k = -3
  • 11.
    Ejercicio 19 a< 10.0 a + b >= 6.5 k ~= 0 b – k > a ~(a == 3 * b) ~k <= k + 6 a < 10 & a > 5 abs(k) > 3 | k < b - a
  • 12.
    Instrucciones if anidadas if g < 50 contar = contar + 1; disp(g); if b > g b = 0; end end
  • 13.
    Cláusula elsePermite ejecutar un conjunto de sentencias si la condición es verdadera y otro conjunto de sentencias si la condición es falsa if intervalo < 1 x_inc = intervalo / 10; else x_inc = 0.1; end
  • 14.
    Cláusula elseifif temperatura > 100 disp(‘Demasiado caliente – Falla de equipo’) elseif temperatura > 90 disp(‘Intervalo operativo normal’) elseif temperatura > 50 disp(‘Temperatura por debajo del intervalo deseado’) else disp(‘Demasiado frío – Apagar equipo’) end
  • 15.
    Ejercicio 20 Supongaque las variables son escalares Si la diferencia entre volt_1 y volt_2 es mayor que 10.0, exhibir los valores de volt_1 y volt_2 Si el logaritmo natural de x es mayor que 3, asignar 0 a tiempo e incrementar contar en 1
  • 16.
    Ejercicio 20 Si dist es menor que 50.0 y tiempo es mayor que 10.0, incrementar tiempo en 2; caso contrario incrementar tiempo en 2.5 Si dist es mayor o igual que 100.0, incrementar tiempo en 2.0. Si dist está entre 50 y 100, incrementar tiempo en 1. En los demás casos, incrementar tiempo en 0.5
  • 17.
    Solución de EcuacionesLineales Considere el siguiente sistema de tres ecuaciones con tres incógnitas:
  • 18.
    Solución de EcuacionesLineales Podemos reescribir este sistema de ecuaciones utilizando las siguientes matrices:
  • 19.
    Solución de EcuacionesLineales Si usamos multiplicación de matrices, el sistema de ecuaciones puede escribirse de esta forma: A X = B Si modificamos nuestra notación de modo que las variables se designen como x 1 , x 2 , x 3 , etc., y reescribimos el conjunto inicial de ecuaciones, tenemos:
  • 20.
    Solución de EcuacionesLineales Este conjunto de ecuaciones se representa entonces con la ecuación A X = B, donde X es el vector columna [x 1 x 2 x 3 ] T
  • 21.
    Solución de EcuacionesLineales Se usa generalmente la ecuación de matrices A X = B para expresar un sistema de ecuaciones; sin embargo, también podemos expresarlo usando vectores fila para B y X.
  • 22.
    Solución de EcuacionesLineales Por ejemplo, considere el conjunto de ecuaciones que empleamos en el ejemplo anterior, podemos escribir el conjunto de ecuaciones como XA = B, si X, A y B se definen como: (Observe que la matriz A es la transpuesta del ejemplo anterior)
  • 23.
    División de MatricesPodemos definir y resolver el sistema de ecuaciones del ejemplo anterior usando la ecuación de matrices A X = B como se muestra en la siguiente diapositiva:
  • 24.
  • 25.
    División de MatricesTambién podemos definir y resolver el mismo sistema de ecuaciones usando la ecuación de matrices X A = B, como se muestra a continuación:
  • 26.
  • 27.
    División de MatricesPara poder aplicar estas técnicas, el sistema debe ser cuadrado. Si un conjunto de ecuaciones es singular, se exhibe un mensaje de error; el vector de soluciones puede contener valores de NaN, + ∞ o -∞, dependiendo de los valores de las matrices A y B Estos sistemas se denominan Sistemas mal condicionados, MatLab calcula una solución, pero exhibe un mensaje de advertencia para indicar que los resultados podrían ser inexactos
  • 28.
    Inversión de MatricesTambién podemos resolver un sistema de ecuaciones usando la inversa de la matriz A, siempre y cuando exista dicha inversa. Por ejemplo, supongamos que A, X y B son las matrices que definimos antes:
  • 29.
    Inversión de MatricesEntonces, A X = B Suponga que multiplicamos ambos lados de la ecuación por A -1 , tenemos entonces: A -1 A X = A -1 B Dado que A -1 A es igual a la matriz identidad (I), tenemos: I X = A -1 B O sea: X = A -1 B
  • 30.
    Inversión de MatricesEn MatLab podemos calcular esta solución utilizando el comando: X = inv(A) * B Este mismo sistema de ecuaciones puede resolverse también usando la inversa de una matriz si el sistema se expresa en la forma: X A = B Donde:
  • 31.
    Inversión de MatricesSi multiplicamos ambos lados de la ecuación por A -1 , tenemos: X A A -1 = B A -1 Puesto que A A -1 es la matriz identidad (I), tenemos:
  • 32.
    Inversión de MatricesX I = B A -1 O sea: X = B A -1 En MatLab, podemos calcular esta solución con el comando: X = B * inv(A)
  • 33.
    Ejercicio 21 Resuelvalos siguientes sistemas de ecuaciones usando división de matrices y matrices inversas. Para cada sistema que contenga ecuaciones de dos variables, grafique las ecuaciones para mostrar la intersección o bien para mostrar que el sistema es singular y no tiene solución única
  • 34.
  • 35.
  • 36.
    Scripts Un script es una secuencia de instrucciones de Matlab guardada en un archivo con extensión .m Se ejecuta escribiendo su nombre:
  • 37.
    Funciones (llamada) Lasfunciones puede recibir varios valores y devolver varios resultados [m,d]=med_des(x); Puede haber argumentos opcionales mit=imread('cameraman.tif','TIFF'); mit=imread('cameraman.tif'); No es necesario asignar todos los valores retornados [mit,map]=imread('imageman.gif'); mit=imread('imageman.gif');
  • 38.
    Funciones (definición) Lasfunciones se escriben en archivos .m que deben encontrarse en el directorio actual (o en un directorio definido en el path)
  • 39.
    Funciones La variable nargin (local de la función) es el número de argumentos recibidos. La variable nargout (local de la función) es el número de argumentos que se recogerán en la llamada. Puede ahorrarnos unos cálculos. Todos los argumentos llegan por valor, no es posible hacer paso por referencia. Los scripts comparten las variables del workspace, mientras que las funciones utilizan variables en local
  • 40.
    Expresiones lógicas Operadoresrelacionales: ~= == > < >= <= Operadores lógicos: && Short-circuit AND || Short-circuit OR & AND | OR Hay una función xor, pero no es un operador
  • 41.
    Control de Flujo:if bloque if A diferencia de C, en Matlab no es necesario utilizar paréntesis en la expresión lógica
  • 42.
    Control de Flujo:for bucle for
  • 43.
    Control de Flujo:while bucle while
  • 44.
    Control de Flujo:switch switch-case A diferencia de C, en Matlab no hace falta utilizar break.
  • 45.
    Control de Flujo:try try-catch Las instrucciones comprendidas entre catch y end sólo se ejecutan si se produce un error en las primeras. Utilizar lasterr para ver el último error.