SlideShare una empresa de Scribd logo
1 de 64
Descargar para leer sin conexión
EME technologies
Ingeniería aplicada a la competición
Tipos de variables en MATLAB
EME technologies
2/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
• Generar un nuevo script y guardarlo con el nombre de hello_world.m
• Añadir las sentencias:
>> % Primer script del proyecto
>> display(‘Hello, world!’)
• Ejecutarlo. Para ello existen dos métodos:
1. Mediante el botón Run.
2. Escribiendo el nombre del script (hello_world.m) en el
Command Window (debe estar en el path!)
El primer código MATLAB: Hello world!
EME technologies
3/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
• Generar un nuevo script y guardarlo con el nombre “hello_world.m”
• Añadir las sentencias:
>> % Primer script del proyecto
>> display(‘Hello, world!’)
• Ejecutarlo. Para ello existen dos métodos:
1. Mediante el botón Run.
2. Escribiendo el nombre del script (hello_world.m) en el
Command Window (debe estar en el path!)
El primer código MATLAB: Hello world!
EME technologies
4/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Asignación y operaciones con
variables
EME technologies
5/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
• Son variables que pueden tomar uno o más valores numéricos (lo
que se denomina array).
• Son las variables con las cuales se realizan todas las operaciones
matemáticas.
• Para crear una variable nueva “a” con el valor 1, basta con escribir:
>> a = 1
• Ello genera la variable “a”, con valor 1, y se visualiza en el explorador
de variables.
Variables de valor numérico: Definicion
EME technologies
6/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
• Son variables que pueden tomar uno o más valores numéricos (lo
que se denomina array).
• Son las variables con las cuales se realizan todas las operaciones
matemáticas.
• Para crear una variable nueva “a” con el valor 1, basta con escribir:
>> a = 1
• Ello genera la variable “a”, con valor 1, y se visualiza en el explorador
de variables o Workspace.
Variables de valor numérico: Definicion
Nombre de la variable
Valor que toma
Linea a ejecutar
Resultado de
la ejecución
EME technologies
7/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
• Entre dos o más variables es posible realizar operaciones matemáticas
elementales.
Variables de valor numérico: Operaciones elementales
Operación Notación
Suma c = a + b
Resta c = a – b
Producto c = a * b
División c = a / b
Exponente c = a^b
EME technologies
8/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
• Operación con paréntesis: siguen las reglas matemáticas.
 Ejemplo.
Cálculo de la expresión 𝑑 =
𝑎+𝑏
𝑐−𝑎
2
𝑎𝑐
, donde
a = 1, b = 2, c = 3.
Variables de valor numérico: Operaciones elementales
EME technologies
9/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
• Operación con paréntesis: siguen las reglas matemáticas.
 Ejemplo.
Cálculo de la expresión 𝑑 =
𝑎+𝑏
𝑐−𝑎
2
𝑎𝑐
, donde
a = 1, b = 2, c = 3.
Variables de valor numérico: Operaciones elementales
EME technologies
10/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
• Operación con paréntesis: siguen las reglas matemáticas.
 Ejemplo.
Cálculo de la expresión 𝑑 =
𝑎+𝑏
𝑐−𝑎
2
𝑎𝑐
, donde
a = 1, b = 2, c = 3.
Variables de valor numérico: Operaciones elementales
Inicialización de las variables
Resultado numérico
EME technologies
11/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
• MATLAB trae prácticamente todas las funciones matemáticas que
existen.
 Propiedades de un número: abs(x), floor(x), round(x), sign(x),
ceil(x), mod(x,a),…
 Raíces: sqrt(x)
 Trigonométricas: sin(x), cos(x), tan(x), sinh(x), cosh(x), tanh(x),
asin(x), acos(x), atan(x), atan2(y,x),…
 Exponenciales: exp(x), log(x), log10(x), log2(x)
 Pero esto es sólo un ejemplo… MATLAB incluye todas las funciones
elementales que podemos necesitar.
 Cuando necesitemos una función en concreto, la web de MATLAB
www.mathworks.com incluye todo tipo de documentación.
Variables de valor numérico: Funciones matemáticas
EME technologies
12/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
• Cuando sabemos qué función necesitamos, pero no tenemos claro
exactamente qué resultado produce o qué variables de entrada
necesita, la ayuda de MATLAB resulta muy potente.
• Se invoca mediante el comando help.
 Por ejemplo, para buscar información de la función sin(x),
escribimos:
>> help sin
Variables de valor numérico: La ayuda de MATLAB
EME technologies
13/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
• Cuando sabemos qué función necesitamos, pero no tenemos claro
exactamente qué resultado produce o qué variables de entrada
necesita, la ayuda de MATLAB resulta muy potente.
• Se invoca mediante el comando help.
 Por ejemplo, para buscar información de la función sin(x),
escribimos:
>> help sin
Variables de valor numérico: La ayuda de MATLAB
Definición de la función
Funciones relacionadas
EME technologies
14/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
• Son variables que sólo pueden tener dos estados:
 Verdadero (true) ó 1
 Falso (false) ó 0.
• Son de vital importancia, ya que controlarán el flujo del código
 Si algo es verdadero, realiza cierta acción, mientras que si es
falso, realizamos otra acción.
• Se definen asignándoles el valor true o false.
>> a = true
>> b = false
Variables lógicas: Definicion
EME technologies
15/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
• Si toman el valor 1 o 0, ¿Por qué no usamos variables numéricas?
 Porque MATLAB trabaja con las variables lógicas de forma
especial.
• Realmente, en ocasiones una variable numérica (de valor 0 o 1)
puede desempeñar la misma tarea que una lógica, pero es una
buena costumbre distinguir entre ellas.
Variables lógicas: Definición
Icono de variable lógica MATLAB sólo las asigna 1 byte.
EME technologies
16/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Variables lógicas: Operaciones entre variables lógicas
• Los tres operadores más comunes entre una o más variables lógicas
son los siguientes:
 Negación (~): Devuelve el valor contrario de una variable. El
contrario de true es false, y viceversa.
 Operador AND (&&): Operación entre dos variables. Devuelve el
valor true si ambas son true. De lo contrario, devuelve el valor
false.
 Operador OR (||): Operación entre dos variables. Devuelve el
valor true si una de ellas es true. De lo contrario, devuelve el
valor false.
a b AND OR
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 1
EME technologies
17/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Variables lógicas: Operaciones entre variables lógicas
• Para escribir una operación más compleja entre varias variables
lógicas, se emplean paréntesis para describir el orden en el cual se
realizan.
• Si a = true y b = false, por ejemplo, se pueden realizar las siguientes
operaciones:
>> ~a false
>> a && b false
>> a || b true
>> (a && b) || (a && ~b) true
EME technologies
18/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Variables lógicas: Generación a partir de variables numéricas
• A partir de dos variables numéricas puede construirse una variable
lógica.
• La variable lógica se obtiene de comparar ambas variables.
• Los operadores típicos entre dos variables numéricas a y b son:
 Igualdad: >> a == b
 No igualdad: >> a ~= b
 Mayor que: >> a > b
 Mayor o igual que: >> a >= b
 Menor que: >> a < b
 Menor o igual que: >> a <= b
• Todas las operaciones anteriores tienen como resultado una variable
lógica.
EME technologies
19/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Variables lógicas: Generación a partir de variables numéricas
• Ejemplos. A partir de las variables a = 1 y b = 2
>> c = a > b false
>> c = a == b false
>> c = a ~= b true
>> c = (~(a == b)) || (a > b) true
EME technologies
20/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Vectores de valores numéricos: Definición
• Se trata de una variable a la cual se le asignan varios valores
numéricos de forma ordenada.
• Para crear un vector cuyas componentes sean 1,2,3,4, y 5, se realiza
de la siguiente forma:
>> vector = [ 1 , 2 , 3 , 4 , 5 ]
• El comando anterior genera una variable llamada vector que contiene
los cinco números.
EME technologies
21/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Vectores de valores numéricos: Definición
• Una vez creado un vector, podemos acceder a una componente
poniendo su posición entre paréntesis.
• Para acceder a la cuarta componente del vector se escribe:
>> vector = [12,21,34,14,500]
>> vector(4)
ans =
14
• Para extraer parte del vector, por ejemplo desde la segunda
componente hasta la cuarta, se escriben separados por dos puntos :
>> vector = [12,21,34,14,500]
>> vector(2:4)
ans =
[21,34,14]
EME technologies
22/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Vectores de valores numéricos: Definición
• Una vez creado un vector, podemos acceder a una componente
poniendo su posición entre paréntesis.
• Para acceder a la cuarta componente del vector se escribe:
>> vector = [12,21,34,14,500]
>> vector(4)
ans =
14
• Para extraer parte del vector, por ejemplo desde la segunda
componente hasta la cuarta, se escriben separados por dos puntos :
>> vector = [12,21,34,14,500]
>> vector(2:4)
ans =
[21,34,14]
EME technologies
23/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Vectores de valores numéricos: Definición
• Una vez creado un vector, podemos acceder a una componente
poniendo su posición entre paréntesis.
• Para acceder a la cuarta componente del vector se escribe:
>> vector = [12,21,34,14,500]
>> vector(4)
ans =
14
• Para extraer parte del vector, por ejemplo desde la segunda
componente hasta la cuarta, se escriben separados por dos puntos :
>> vector = [12,21,34,14,500]
>> vector(2:4)
ans =
[21,34,14]
EME technologies
24/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Vectores de valores numéricos: Definición
• Los vectores en MATLAB no tienen tamaño fijo.
• Por ejemplo. Creamos un vector de cinco componentes:
>> vector = [3,2,6,4,10]
• Si se trata de acceder a la posición 6, MATLAB devuelve el siguiente
error:
>> vector(6)
Index exceeds matrix dimensions.
• No obstante, podemos añadir un nuevo valor a la posición 6.
>> vector(6) = 25
ans =
[3,2,6,4,10,25]
• De esta forma, podemos incrementar progresivamente el tamaño de
un vector. Pero no es recomendable.
EME technologies
25/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Vectores de valores numéricos: Funciones aplicadas a un vector
• Es posible aplicar funciones a un vector para obtener información de
las variables que contienen. Las más destacadas son:
 length(x): Devuelve el tamaño del vector x.
 norm(x): Devuelve el módulo del vector x
 sum(x): Suma todas las componentes del vector x.
 prod(x): Multiplica todas las componentes del vector x.
 max(x): Devuelve el número más grande que contiene.
 min(x): Devuelve el número más pequeño que contiene.
 sort(x): Devuelve el vector con las componentes ordenadas de
menor a mayor.
 mean(x): Devuelve la media de las componentes
 unique(x): Devuelve el vector ordenado de menor a mayor, y
elimina aquellas componentes que estén repetidas.
 TODAS las funciones aplicadas a un número vistas anteriormente
(abs, floor, sin, cos, tan, exp) pueden usarse, y las realiza
componente a componente.
EME technologies
26/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Vectores de valores numéricos: Funciones aplicadas a un vector
• Ejemplos. Definimos el vector x = [7,3,7,0,-1]
>> length(x) ans = 5
>> norm(x) ans = 10.3923
>> sum(x) ans = 16
>> prod(x) ans = 0
>> max(x) ans = 7
>> min(x) ans = -1
>> sort(x) ans = [-1,0,3,7,7]
>> mean(x) ans = 3.2
>> unique(x) ans = [-1,0,3,7]
>> sin(x) ans = [0.6570,0.1411,0.6570,0,-0.8415]
>> sign(x) ans = [1,1,1,0,-1]
>> abs(x) ans = [7,3,7,0,1]
EME technologies
27/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Vectores de valores numéricos: Operaciones
• Es posible realizar todo tipo de operaciones matemáticas con vectores.
 Producto por un escalar. Multiplicar un vector por un número multiplica
una a una sus componentes por dicho número.
>> vector = [2,4,3,6,7]
>> 2*[2,4,3,6,7]
ans =
[4,8,6,12,14]
 Suma de vectores. Dos vectores distintos pueden sumarse si poseen el
mismo tamaño
>> a = [1,2,3]
>> b = [4,5,6]
>> c = a + b
ans =
[4,7,9]
 Suma de un número a un vector. Sumar un número a un vector, le suma
ese número a cada componente.
>> a = [1,2,3]
>> a + 2
ans =
[3,4,5]
EME technologies
28/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Vectores de valores numéricos: Producto/División de vectores?
• ¿Qué realizan la operación producto (*) división (/) o potencia (^) ?
• Son caracteres reservados para operaciones con matrices.
• Si queremos multiplicar, dividir, o elevar dos vectores componente a componente
hay que añadir un punto delante al operador para obtener el producto (.*), división
(./), y potencia (.^).
• En la universidad no se estudian productos componente a componente, si no
producto escalar o vectorial, entonces, ¿Para qué se necesita?:
 Desde el punto de vista computacional sí es útil.
• Ejemplos. Generamos dos vectores a = [1,0,4], y b = [6,8,4]
 Producto componente a componente
>> c = a.*b c = [6,0,16]
 División componente a componente
>> c = a./b c = [0.166667, 0 ,1]
 Elevar cada componente a un número (por ejemplo las de b al cuadrado)
>> c = b.^2 c = [36,64,16]
 Elevar cada componente de un vector a otra componente de otro vector
>> c = b.^a c = [6,1,256]
EME technologies
29/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Vectores de valores numéricos: Productos especiales
• ¿Y el producto escalar o vectorial? Tienen funciones específicamente creadas para
ello
• Producto escalar: la función dot(a,b) realiza el producto escalar de a con b.
(Recordatorio: Ԧ𝑎 · 𝑏 = 𝑎1 𝑏1 + 𝑎2 𝑏2 + 𝑎3 𝑏3 + … = Ԧ𝑎 𝑏 cos(𝑎, 𝑏))
Ejemplo. Creando a = [5,0,3] y b = [1,4,-3]
>> dot(a,b) ans = -4
¿Es la única forma? El producto escalar es la suma del producto de las
componentes de a y b.
>> sum(a.*b) ans = -4
• Producto vectorial: la función cross(a,b) devuelve el producto vectorial de a con b.
(¡Sólo tiene sentido con vectores de dimensión 3!)
Ejemplo. Creando a = [3,-4,5] y b = [1,0,0]
>> c = cross(a,b) c = [0,5,4]
El resultado del producto vectorial es perpendicular a los dos vectores
originales: El producto escalar con ellos debería ser 0
>> dot(a,c) ans = 0
EME technologies
30/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Vectores de valores numéricos: Otros métodos de generar vectores
• Mediante los dos puntos. Genera un vector que empieza en cierto valor inicial,
termina en un valor final, y el salto entre componentes es un cierto paso. La
notación es la siguiente:
>> valor_inicial : paso : valor_final
Ejemplo. Vector que comienza en cero, termina en 9, y existe un salto entre
variables de valor 2
>> v = 0:2:9
ans =
[0,2,4,6,8]
Otro ejemplo. Un vector que comienza en 0, termina en 𝟐𝝅 y realiza saltos de 𝝅/𝟐
>> v = 0 : pi/2 : 2*pi
ans =
[0, 1.57, 3.14, 4.71, 6.28]
• Mediante la función linspace. Igualmente genera un vector que empieza en cierto
valor y termina en otro valor, pero en lugar de introducir el paso, se introduce la
cantidad de puntos que se desean.
>> linspace( valor_inicial , valor_final , Numero_puntos )
>> v = linspace( 0 , 9 , 5)
ans = [ 0, 2.25, 4.5, 6.75, 9 ]
EME technologies
31/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Vectores de valores numéricos: Otros métodos de generar vectores
• Mediante los dos puntos. Genera un vector que empieza en cierto valor inicial,
termina en un valor final, y el salto entre componentes es un cierto paso. La
notación es la siguiente:
>> valor_inicial : paso : valor_final
Ejemplo. Vector que comienza en cero, termina en 9, y existe un salto entre
variables de valor 2
>> v = 0:2:9 >> v = 1:2:9
ans = ans =
[0,2,4,6,8] [1,3,5,7,9]
Otro ejemplo. Un vector que comienza en 0, termina en 𝟐𝝅 y realiza saltos de 𝝅/𝟐
>> v = 0 : pi/2 : 2*pi
ans =
[0, 1.57, 3.14, 4.71, 6.28]
• Mediante la función linspace. Igualmente genera un vector que empieza en cierto
valor y termina en otro valor, pero en lugar de introducir el paso, se introduce la
cantidad de puntos que se desean.
>> linspace( valor_inicial , valor_final , Numero_puntos )
>> v = linspace( 0 , 9 , 5)
ans = [ 0, 2.25, 4.5, 6.75, 9 ]
Valores inicial, final, y paso no son coherentes
EME technologies
32/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Vectores de valores numéricos: Otros métodos de generar vectores
• Mediante los dos puntos. Genera un vector que empieza en cierto valor inicial,
termina en un valor final, y el salto entre componentes es un cierto paso. La
notación es la siguiente:
>> valor_inicial : paso : valor_final
Ejemplo. Vector que comienza en cero, termina en 9, y existe un salto entre
variables de valor 2
>> v = 0:2:9 >> v = 1:2:9
ans = ans =
[0,2,4,6,8] [1,3,5,7,9]
Otro ejemplo. Un vector que comienza en 0, termina en 𝟐𝝅 y realiza saltos de 𝝅/𝟐
>> v = 0 : pi/2 : 2*pi
ans =
[0, 1.57, 3.14, 4.71, 6.28]
• Mediante la función linspace. Igualmente genera un vector que empieza en cierto
valor y termina en otro valor, pero en lugar de introducir el paso, se introduce la
cantidad de puntos que se desean.
>> linspace( valor_inicial , valor_final , Numero_puntos )
>> v = linspace( 0 , 9 , 5)
ans = [ 0, 2.25, 4.5, 6.75, 9 ]
Valores inicial, final, y paso no son coherentes
El paso será 𝒑 =
𝟗−𝟎
𝟓
= 2.25
EME technologies
33/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Vectores de valores numéricos: Concatenación de vectores
• Concatenar se refiere a colocar un vector detrás de otro.
• Para realizar esta operación en MATLAB, se colocan los vectores a unir entre
corchetes.
>> v_unido = [ vec1, vec2, vec3 ]
• Los vectores a unir no tienen porqué tener el mismo tamaño
• Ejemplo.
>> vec1 = [1,2,3]
>> vec2 = [0,1,3,0]
>> vec3 = [9,8]
>> v_unido = [vec1,vec2,vec3]
>> v_unido =
[1,2,3,0,1,3,0,9,8]
EME technologies
34/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Vectores de valores numéricos: Concatenación de vectores
• Concatenar se refiere a colocar un vector detrás de otro.
• Para realizar esta operación en MATLAB, se colocan los vectores a unir entre
corchetes.
>> v_unido = [ vec1, vec2, vec3 ]
• Los vectores a unir no tienen porqué tener el mismo tamaño
• Ejemplo.
>> vec1 = [1,2,3]
>> vec2 = [0,1,3,0]
>> vec3 = [9,8]
>> v_unido = [vec1,vec2,vec3]
>> v_unido =
[1,2,3,0,1,3,0,9,8]
EME technologies
35/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Matrices de valores numéricos: Definición
• ¡Todo lo contado anteriormente es mentira!
• No existen ni las variables tipo número, ni los vectores.
• Para MATLAB todo son matrices (MAT-LAB = Matrix laboratory)
 Un número es una matriz 1x1.
 Un vector es una matriz fila (1xN), o una matriz columna (Nx1).
• Definiendo a = 1 y b = [1,2,3], en el explorador de variables (workspace):
EME technologies
36/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Matrices de valores numéricos: Definición
• ¡Todo lo contado anteriormente es mentira!
• No existen ni las variables tipo número, ni los vectores.
• Para MATLAB todo son matrices (MAT-LAB = Matrix laboratory)
 Un número es una matriz 1x1.
 Un vector es una matriz fila (1xN), o una matriz columna (Nx1).
• Definiendo a = 1 y b = [1,2,3], en el explorador de variables (workspace):
EME technologies
37/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Matrices de valores numéricos: Definición
• Son variables que almacenan NxM números ordenados en N filas y M columnas.
• Para generar la matriz
A =
1 5
−4 0
se introduce de forma similar a un vector: Entre corchetes, y por filas,
separando las filas por punto y coma (;).
>> A = [1 , 5 ; -4 , 0]
A =
1 5
-4 0
EME technologies
38/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Matrices de valores numéricos: Definición
• Son variables que almacenan NxM números ordenados en N filas y M columnas.
• Para generar la matriz
A =
1 5
−4 0
se introduce de forma similar a un vector: Entre corchetes, y por filas,
separando las filas por punto y coma (;).
>> A = [1 , 5 ; -4 , 0]
A =
1 5
-4 0
EME technologies
39/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Matrices de valores numéricos: Definición
• Son variables que almacenan NxM números ordenados en N filas y M columnas.
• Para generar la matriz
A =
1 5
−4 0
se introduce de forma similar a un vector: Entre corchetes, y por filas,
separando las filas por punto y coma (;).
>> A = [1 , 5 ; -4 , 0]
A =
1 5
-4 0
EME technologies
40/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Matrices de valores numéricos: Definición
• Acceder a un elemento de la matriz: A partir de la matriz anterior
>> A = [1 , 5 ; -4 , 0]
• Para acceder al elemento situado en la fila 1 y columna 2, existen dos posibilidades
 Escribir entre paréntesis en primer lugar la fila, y en segundo lugar la
columna
>> A(1,2)
ans =
5
 MATLAB ordena internamente la matriz por columnas (las dos primeras
posiciones las ocupa la columna 1, y las dos segundas posiciones las ocupa la
columna 2)
A =
1 5
−4 0
En este caso, el elemento en la fila 1 y columna 2 sería el tercer elemento
que almacena MATLAB, y se podría acceder:
>> A(3)
ans =
5
EME technologies
41/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Matrices de valores numéricos: Definición
• Acceder a un elemento de la matriz: A partir de la matriz anterior
>> A = [1 , 5 ; -4 , 0]
• Para acceder al elemento situado en la fila 1 y columna 2, existen dos posibilidades
 Escribir entre paréntesis en primer lugar la fila, y en segundo lugar la
columna
>> A(1,2)
ans =
5
 MATLAB ordena internamente la matriz por columnas (las dos primeras
posiciones las ocupa la columna 1, y las dos segundas posiciones las ocupa la
columna 2)
A =
1 5
−4 0
En este caso, el elemento en la fila 1 y columna 2 sería el tercer elemento
que almacena MATLAB, y se podría acceder:
>> A(3)
ans =
5
Primera columna Segunda columna
EME technologies
42/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Matrices de valores numéricos: Definición
• Acceder a un elemento de la matriz: A partir de la matriz anterior
>> A = [1 , 5 ; -4 , 0]
• Para acceder al elemento situado en la fila 1 y columna 2, existen dos posibilidades
 Escribir entre paréntesis en primer lugar la fila, y en segundo lugar la
columna
>> A(1,2)
ans =
5
 MATLAB ordena internamente la matriz por columnas (las dos primeras
posiciones las ocupa la columna 1, y las dos segundas posiciones las ocupa la
columna 2)
A =
1 5
−4 0
En este caso, el elemento en la fila 1 y columna 2 sería el tercer elemento
que almacena MATLAB, y se podría acceder:
>> A(3)
ans =
5
Primera columna Segunda columna
Esto es demasiado lioso, ¿No creéis?
Es más recomendable esta opción
EME technologies
43/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Matrices de valores numéricos: Definición
• De la misma forma, para acceder a una submatriz obtenida de seleccionar un rango
de filas y un rango de columnas se realiza mediante los dos puntos.
 Ejemplo. De una matriz 4x4 se extraen las filas 2 y 3, y las columnas 3 y 4:
>> A = [1,0,1,0;2,-1,0,5;-3,4,3,0;0,0,0,1]
A =
1 0 1 0
2 -1 0 5
-3 4 3 0
0 0 0 1
>> A( 2:3 , 3:4)
ans =
0 5
3 0
• Para extraer una determinada fila o columna completa se selecciona dicha fila o
columna y el argumento libre se deja con dos puntos (:)
 Ejemplo. De la matriz anterior, extraer la fila 3 y la columna 2
>> A ( 3 , : ) >> A ( : , 2 )
ans = ans =
-3 4 3 0 0
-1
3
EME technologies
44/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Matrices de valores numéricos: Definición
• De la misma forma, para acceder a una submatriz obtenida de seleccionar un rango
de filas y un rango de columnas se realiza mediante los dos puntos.
 Ejemplo. De una matriz 4x4 se extraen las filas 2 y 3, y las columnas 3 y 4:
>> A = [1,0,1,0;2,-1,0,5;-3,4,3,0;0,0,0,1]
A =
1 0 1 0
2 -1 0 5
-3 4 3 0
0 0 0 1
>> A( 2:3 , 3:4)
ans =
0 5
3 0
• Para extraer una determinada fila o columna completa se selecciona dicha fila o
columna y el argumento libre se deja con dos puntos (:)
 Ejemplo. De la matriz anterior, extraer la fila 3 y la columna 2
>> A ( 3 , : ) >> A ( : , 2 )
ans = ans =
-3 4 3 0 0
-1
3
1
2
3
4
1 2 3 4
EME technologies
45/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Matrices de valores numéricos: Definición
• De la misma forma, para acceder a una submatriz obtenida de seleccionar un rango
de filas y un rango de columnas se realiza mediante los dos puntos.
 Ejemplo. De una matriz 4x4 se extraen las filas 2 y 3, y las columnas 3 y 4:
>> A = [1,0,1,0;2,-1,0,5;-3,4,3,0;0,0,0,1]
A =
1 0 1 0
2 -1 0 5
-3 4 3 0
0 0 0 1
>> A( 2:3 , 3:4)
ans =
0 5
3 0
• Para extraer una determinada fila o columna completa se selecciona dicha fila o
columna y el argumento libre se deja con dos puntos (:)
 Ejemplo. De la matriz anterior, extraer la fila 3 y la columna 2
>> A ( 3 , : ) >> A ( : , 2 )
ans = ans =
-3 4 3 0 0
-1
4
1
2
3
4
1 2 3 4
EME technologies
46/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Matrices de valores numéricos: Definición
• En conclusión, para cada una de las dos posiciones de una matriz se pueden utilizar
tres opciones:
 Seleccionar un valor. Por ejemplo el elemento 3.
 Seleccionar un rango de valores. Por ejemplo desde 1 hasta 4 sería 1:4
 Seleccionar todos los valores posibles. Mediante los dos puntos ( : )
A(3) 3 6 -5 0 2 3
A(1:4) 3 6 -5 0 2 3
A(:) 3 6 -5 0 2 3
EME technologies
47/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Matrices de valores numéricos: Funciones aplicadas a matrices
• Todas las funciones vistas para números, sirven también para matrices
>> A = [1.3, 5.4 ; -1 , 0]
A =
1.3 5.4
-1.3 0.2
>> floor(A)
ans
1 5
-2 0
• Las funciones vistas para vectores las aplica por columnas. Es decir:
 La función sum(A) devuelve un vector fila cuya componente 2 es la suma de
las componentes de la segunda columna de la matriz
>> A = [1 , 3 ; 5 , 6]
A =
1 3
5 6
>> sum(A)
ans =
6 9
EME technologies
48/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Matrices de valores numéricos: Funciones aplicadas a matrices
• Todas las funciones vistas para números, sirven también para matrices
>> A = [1.3, 5.4 ; -1 , 0]
A =
1.3 5.4
-1.3 0.2
>> floor(A)
ans
1 5
-2 0
• Las funciones vistas para vectores las aplica por columnas. Es decir:
 La función sum(A) devuelve un vector fila cuya componente 2 es la suma de
las componentes de la segunda columna de la matriz
>> A = [1 , 3 ; 5 , 6]
A =
1 3
5 6
>> sum(A)
ans =
6 9
Las realiza número a número
EME technologies
49/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Matrices de valores numéricos: Funciones aplicadas a matrices
• Todas las funciones vistas para números, sirven también para matrices
>> A = [1.3, 5.4 ; -1 , 0]
A =
1.3 5.4
-1.3 0.2
>> floor(A)
ans
1 5
-2 0
• Las funciones vistas para vectores las aplica por columnas. Es decir:
 La función sum(A) devuelve un vector fila cuya componente 2 es la suma de
las componentes de la segunda columna de la matriz
>> A = [1 , 3 ; 5 , 6]
A =
1 3
5 6
>> sum(A)
ans =
6 9
Las realiza número a número
EME technologies
50/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Matrices de valores numéricos: Funciones aplicadas a matrices
• También hay funciones orientadas a matrices, pero como se ha visto también pueden
aplicarse a vectores o números.
 size(A): Devuelve un vector con el número de filas y columnas que contiene la
matriz
 Si se aplica a un vector devolverá el valor [1,N] si es un vector fila, o el
valor [N,1] si es vector columna.
 transpose(A): Devuelve la matriz transpuesta.
 ¡Serviría para pasar de vector fila, a vector columna!
 inv(A): Devuelve la matriz inversa
 ¡Sólo si la matriz es cuadrada!
 det(A): Devuelve el determinante de la matriz.
 ¡Sólo si la matriz es cuadrada!
 eig(A): Devuelve los autovalores de la matriz.
 ¡Sólo si la matriz es cuadrada!
EME technologies
51/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Matrices de valores numéricos: Operaciones con matrices
• Producto por un escalar: Multiplicar una matriz por un número multiplica una a una
sus componentes por dicho número.
>> A = [1, 2, 3 ; 0, 3, 0]
A =
1 2 3
0 3 0
>> 3*A
ans =
3 6 9
0 9 0
• Suma y resta de matrices: Puede realizarse siempre que las dos matrices posean el
mismo tamaño.
>> A = [1,2 ; 4,5] >> B = [0,1 ; 1,0 ]
A = B =
1 2 0 1
4 5 1 0
>> A + B >> A – 2*B
ans = ans =
1 3 1 0
5 5 2 5
EME technologies
52/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Matrices de valores numéricos: Operaciones con matrices
• Producto matricial: La operación
A * B
no multiplica componente a componente, si no que realiza el producto
matricial de las matrices A y B.
 Este tipo de producto sólo puede realizarse si el número de columnas de A es
igual al número de filas de B.
𝐴 𝑛 𝑎 𝑥 𝑚 𝑎 ∗ 𝐵 𝑛 𝑏 𝑥 𝑚 𝑏 = 𝐶[𝑛 𝑎 𝑥 𝑚 𝑏]
>> A = [1, 0, 2; 0, 0, 3] >> A*B
A = ans =
1 0 2 6 1
0 0 3 9 0
>> B = [0, 1; 5, 4; 3, 0] >> B*A
B = ans =
0 1 0 0 3
5 4 5 0 22
3 0 3 0 6
EME technologies
53/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Matrices de valores numéricos: Operaciones con matrices
• Producto matricial: La operación
A * B
no multiplica componente a componente, si no que realiza el producto
matricial de las matrices A y B.
 Este tipo de producto sólo puede realizarse si el número de columnas de A es
igual al número de filas de B.
𝐴 𝑛 𝑎 𝑥 𝑚 𝑎 ∗ 𝐵 𝑛 𝑏 𝑥 𝑚 𝑏 = 𝐶[𝑛 𝑎 𝑥 𝑚 𝑏]
>> A = [1, 0, 2; 0, 0, 3] >> A*B
A = ans =
1 0 2 6 1
0 0 3 9 0
>> B = [0, 1; 5, 4; 3, 0] >> B*A
B = ans =
0 1 0 0 3
5 4 5 0 22
3 0 3 0 6
EME technologies
54/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Matrices de valores numéricos: Operaciones con matrices
• Podemos realizar operaciones componente a componente igual que en vectores, con
el operador (.*)
>> A = [1, 0; 4, 5; 0, 3]
A =
1 0
4 5
0 3
>> B = [ 0, 1; 3, 5; 9, 3]
B =
0 1
3 5
9 3
>> A .* B
ans =
0x1=0 0x1=0
4x3=12 5x5=25
0x9=9 3x3=9
EME technologies
55/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Matrices de valores numéricos: Operaciones con matrices
• En cuanto a la división, existen dos tipos.
 Mediante la barra slash (/), la cual se llama right matrix divide, y calcula la
siguiente cantidad.
A / B = A*inv(B)
 Esta función no es muy útil.
 Mediante la barra backslash (), la cual se llama left matrix divide, y calcula la
siguiente cantidad.
A  B = inv(A) * B
 Esta función es muy útil. Si se considera el sistema A*x = B, su resultado:
x = inv(A)*B Lo calcularemos con esta función: x = AB
¿Por qué no hacer directamente inv(A)*B? Porque AB no calcula la matriz
inversa, si no que resuelve el sistema por otros métodos más eficientes
computacionalmente.
Ejemplo. Resolver el sistema Ax = B con
>> A = [1, 2 ; 3, 0] >> B = [0 ; 1]
>> x = AB B =
ans = 0
[0.333, -0.16667] 1
EME technologies
56/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Matrices de valores numéricos: Operaciones con matrices
• En cuanto a la división, existen dos tipos.
 Mediante la barra slash (/), la cual se llama right matrix divide, y calcula la
siguiente cantidad.
A / B = A*inv(B)
 Esta función no es muy útil.
 Mediante la barra backslash (), la cual se llama left matrix divide, y calcula la
siguiente cantidad.
A  B = inv(A) * B
 Esta función es muy útil. Si se considera el sistema A*x = B, su resultado:
x = inv(A)*B Lo calcularemos con esta función: x = AB
¿Por qué no hacer directamente inv(A)*B? Porque AB no calcula la matriz
inversa, si no que resuelve el sistema por otros métodos más eficientes
computacionalmente.
Ejemplo. Resolver el sistema Ax = B con
>> A = [1, 2 ; 3, 0] >> B = [0 ; 1]
>> x = AB ¿Qué resultado da A*x?
ans = [0.333, -0.16667] >> A*x = [0,1] = B
EME technologies
57/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Matrices de valores numéricos: Operaciones con matrices
• De esta forma, para la resolución de un sistema lineal de ecuaciones, siempre
usaremos la barra .
A*x = B ? x = AB
• Para que un sistema tenga solución única, deberá estar completamente determinado,
lo que implica que el determinante de la matriz A de coeficientes deberá tener un
determinante distinto de cero.
• Si se trata de resolver un sistema con infinitas soluciones o indeterminado, la
solución no es válida (aunque MATLAB por defecto devuelve algún valor).
• Ejemplo.
>> A = [ 1 , 2 ; 2, 4] >> B = [ 0 ; 1]
A = B =
1 2 0
2 4 1
>> det(A)
ans =
0
>> x = AB
Warning: Matrix is singular to working precision
EME technologies
58/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Matrices de valores numéricos: Operaciones con matrices
• Podemos realizar operaciones componente a componente igual que en vectores, con
el operador (./)
>> A = [1, 0; 4, 5; 0, 3]
A =
1 0
4 5
0 3
>> B = [ 0, 1; 3, 5; 9, 3]
B =
0 1
3 5
9 3
>> A ./ B
ans =
1/0=Inf 0x1 = 0
4/3=1.33 5/5 = 1
0/9=0 3/3 = 1
EME technologies
59/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Matrices de valores numéricos: Concatenación
• Igual que se pueden concatenar vectores, es decir, colocar uno detrás de otro,
pueden concatenarse matrices.
• La forma de realizarse en MATLAB es igual, colocando las matrices a unir entre
corchetes, y separándolas:
 Por coma (,) cuando deseamos poner una seguida de la otra
 Por punto y coma (;) cuando deseamos poner una debajo de la otra
• Ejemplo.
>> A = [1 , 2 ; 0 , 4] >> C = [A , B]
A = C =
1 2 1 2 5 6
3 -4 0 4 3 -4
>> B = [ 5 , 6 ; 0 , 7 ] >> C = [A ; B]
B = C =
5 6 1 2
0 4 0 4
5 6
3 -4
EME technologies
60/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Matrices de valores numéricos: Concatenación
• Igual que se pueden concatenar vectores, es decir, colocar uno detrás de otro,
pueden concatenarse matrices.
• La forma de realizarse en MATLAB es igual, colocando las matrices a unir entre
corchetes, y separándolas:
 Por coma (,) cuando deseamos poner una seguida de la otra
 Por punto y coma (;) cuando deseamos poner una debajo de la otra
• Ejemplo.
>> A = [1 , 2 ; 0 , 4] >> C = [A , B]
A = C =
1 2 1 2 5 6
0 4 0 4 3 -4
>> B = [ 5 , 6 ; 0 , 7 ] >> C = [A ; B]
B = C =
5 6 1 2
3 -4 0 4
5 6
3 -4
A B
A
B
EME technologies
61/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Matrices de valores numéricos: Funciones para generar matrices
• Es posible generar matrices de distintas formas:
 zeros(n,m): Genera una matriz con n filas y m columnas en la que todos sus
valores valen cero.
 ones(n,m): Genera una matriz con n filas y m columnas en la que todos sus
valores valen uno.
 eye(n): Genera una matriz identidad con n filas y n columnas
 rand(n,m): Genera una matriz con n filas y m columnas en las que sus valores
son números aleatorios entre 0 y 1.
EME technologies
62/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Variables de caracteres: Definición
• Las variables tipo string almacenan cualquier carácter alfanumérico.
• Para definir un string, se incluye su contenido entre apóstrofes (‘).
>> str = ‘mi primer string’
• Desde el punto de vista del almacenamiento de datos, trabaja con ellos de forma
idéntica a un vector, es decir, para acceder a la letra en la posición 4, se escribe:
>> str(4)
ans =
p
• Concatenar strings significa colocar uno detrás del otro, lo cual se realiza
colocándolos entre corchetes por orden
>> str1 = ‘EME’
>> str2 = ‘TECHNOLOGIES’
>> [str1,’ ‘,str2]
ans =
EME TECHNOLOGIES
EME technologies
63/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Variables de caracteres: Funciones útiles
• Para comparar dos strings, existen dos posibilidades en función de los requisitos.
 La función strcmp(str1,str2) compara los strings str1 y str2, devolviendo el valor
true si son exactamente iguales, y false en caso contrario.
>> strcmp(‘e’,’E’)
ans =
0
 La función strcmpi(str1,str2) compara los strings str1 y str2, devolviendo el valor
true si son iguales sin tener en cuenta las mayúsculas, y false en caso
contrario.
>> strcmpi(‘e’,’E’)
ans =
1
• Para convertir una variable numérica en un string cuyo contenido sea el valor de la
variable, se emplea la función num2str(var) (numerical to string).
>> num2str(2)
ans = ‘2’
• Del mismo modo, para convertir un string con contenido numérico a una variable
numérica cuyo valor es el contenido del string se utiliza la función str2num(str).
>> str2num( ‘2.345’ )
ans = 2.345
EME technologies
Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016
Fin.
Siguiente tema: “Gestión del flujo del
código.”

Más contenido relacionado

La actualidad más candente

La actualidad más candente (19)

Seminario de matlab
Seminario de matlabSeminario de matlab
Seminario de matlab
 
Introduccion y operaciones basicas (matlab)
Introduccion y operaciones basicas (matlab)Introduccion y operaciones basicas (matlab)
Introduccion y operaciones basicas (matlab)
 
Fundamentos de programación en scilab
Fundamentos de programación en scilabFundamentos de programación en scilab
Fundamentos de programación en scilab
 
Tutorial descilab
Tutorial descilabTutorial descilab
Tutorial descilab
 
Programacion en matlab
Programacion en matlabProgramacion en matlab
Programacion en matlab
 
Matlab presentacion enero2012
Matlab presentacion enero2012Matlab presentacion enero2012
Matlab presentacion enero2012
 
Introducción a Matlab
Introducción a MatlabIntroducción a Matlab
Introducción a Matlab
 
MATLAB 2010
MATLAB 2010MATLAB 2010
MATLAB 2010
 
Apuntes scilab
Apuntes scilabApuntes scilab
Apuntes scilab
 
Manejo Vectores Matlab
Manejo Vectores MatlabManejo Vectores Matlab
Manejo Vectores Matlab
 
Tutorial de MatLab
Tutorial de MatLabTutorial de MatLab
Tutorial de MatLab
 
Matlab (1)
Matlab (1)Matlab (1)
Matlab (1)
 
Matlab 2 Capitulo 4
Matlab 2 Capitulo 4Matlab 2 Capitulo 4
Matlab 2 Capitulo 4
 
Tema 1
Tema 1Tema 1
Tema 1
 
Fi0708 ejercicios
Fi0708 ejerciciosFi0708 ejercicios
Fi0708 ejercicios
 
Tutorial graficos en_matlab
Tutorial graficos en_matlabTutorial graficos en_matlab
Tutorial graficos en_matlab
 
Solución de Problemas de Ingeniería con MATLAB
Solución de Problemas de Ingeniería con MATLABSolución de Problemas de Ingeniería con MATLAB
Solución de Problemas de Ingeniería con MATLAB
 
Ejercicios de arreglo
Ejercicios de arregloEjercicios de arreglo
Ejercicios de arreglo
 
Silabo programación ii 2015-i
Silabo programación ii 2015-iSilabo programación ii 2015-i
Silabo programación ii 2015-i
 

Similar a 2_LenguajeMATLAB

Similar a 2_LenguajeMATLAB (20)

Matlab
MatlabMatlab
Matlab
 
15894 pr cctica-3-introducciun-al-matlab-simulink
15894 pr cctica-3-introducciun-al-matlab-simulink15894 pr cctica-3-introducciun-al-matlab-simulink
15894 pr cctica-3-introducciun-al-matlab-simulink
 
Matlab
MatlabMatlab
Matlab
 
Matlab2
Matlab2Matlab2
Matlab2
 
Curso_de_introduccion_al_matlab.ppt
Curso_de_introduccion_al_matlab.pptCurso_de_introduccion_al_matlab.ppt
Curso_de_introduccion_al_matlab.ppt
 
clase de matlab
clase  de   matlabclase  de   matlab
clase de matlab
 
003- Clas- Lenguajes de programación.pptx
003- Clas- Lenguajes de programación.pptx003- Clas- Lenguajes de programación.pptx
003- Clas- Lenguajes de programación.pptx
 
Copiade documento(2)
Copiade documento(2)Copiade documento(2)
Copiade documento(2)
 
Computacion ii cap i
Computacion ii cap iComputacion ii cap i
Computacion ii cap i
 
computacion
computacioncomputacion
computacion
 
Matlab_basic.pptx
Matlab_basic.pptxMatlab_basic.pptx
Matlab_basic.pptx
 
Manualmv1
Manualmv1Manualmv1
Manualmv1
 
Matlab introducción
Matlab   introducciónMatlab   introducción
Matlab introducción
 
Matlab introducción
Matlab   introducciónMatlab   introducción
Matlab introducción
 
Matlab introducción
Matlab   introducciónMatlab   introducción
Matlab introducción
 
Diapositivas matlab
Diapositivas matlabDiapositivas matlab
Diapositivas matlab
 
Tema 3
Tema 3Tema 3
Tema 3
 
Documento
DocumentoDocumento
Documento
 
02 Procesamiento de Datos.pptx
02 Procesamiento de Datos.pptx02 Procesamiento de Datos.pptx
02 Procesamiento de Datos.pptx
 
Matlab aplicacione s
Matlab aplicacione sMatlab aplicacione s
Matlab aplicacione s
 

2_LenguajeMATLAB

  • 1. EME technologies Ingeniería aplicada a la competición Tipos de variables en MATLAB
  • 2. EME technologies 2/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 • Generar un nuevo script y guardarlo con el nombre de hello_world.m • Añadir las sentencias: >> % Primer script del proyecto >> display(‘Hello, world!’) • Ejecutarlo. Para ello existen dos métodos: 1. Mediante el botón Run. 2. Escribiendo el nombre del script (hello_world.m) en el Command Window (debe estar en el path!) El primer código MATLAB: Hello world!
  • 3. EME technologies 3/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 • Generar un nuevo script y guardarlo con el nombre “hello_world.m” • Añadir las sentencias: >> % Primer script del proyecto >> display(‘Hello, world!’) • Ejecutarlo. Para ello existen dos métodos: 1. Mediante el botón Run. 2. Escribiendo el nombre del script (hello_world.m) en el Command Window (debe estar en el path!) El primer código MATLAB: Hello world!
  • 4. EME technologies 4/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Asignación y operaciones con variables
  • 5. EME technologies 5/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 • Son variables que pueden tomar uno o más valores numéricos (lo que se denomina array). • Son las variables con las cuales se realizan todas las operaciones matemáticas. • Para crear una variable nueva “a” con el valor 1, basta con escribir: >> a = 1 • Ello genera la variable “a”, con valor 1, y se visualiza en el explorador de variables. Variables de valor numérico: Definicion
  • 6. EME technologies 6/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 • Son variables que pueden tomar uno o más valores numéricos (lo que se denomina array). • Son las variables con las cuales se realizan todas las operaciones matemáticas. • Para crear una variable nueva “a” con el valor 1, basta con escribir: >> a = 1 • Ello genera la variable “a”, con valor 1, y se visualiza en el explorador de variables o Workspace. Variables de valor numérico: Definicion Nombre de la variable Valor que toma Linea a ejecutar Resultado de la ejecución
  • 7. EME technologies 7/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 • Entre dos o más variables es posible realizar operaciones matemáticas elementales. Variables de valor numérico: Operaciones elementales Operación Notación Suma c = a + b Resta c = a – b Producto c = a * b División c = a / b Exponente c = a^b
  • 8. EME technologies 8/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 • Operación con paréntesis: siguen las reglas matemáticas.  Ejemplo. Cálculo de la expresión 𝑑 = 𝑎+𝑏 𝑐−𝑎 2 𝑎𝑐 , donde a = 1, b = 2, c = 3. Variables de valor numérico: Operaciones elementales
  • 9. EME technologies 9/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 • Operación con paréntesis: siguen las reglas matemáticas.  Ejemplo. Cálculo de la expresión 𝑑 = 𝑎+𝑏 𝑐−𝑎 2 𝑎𝑐 , donde a = 1, b = 2, c = 3. Variables de valor numérico: Operaciones elementales
  • 10. EME technologies 10/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 • Operación con paréntesis: siguen las reglas matemáticas.  Ejemplo. Cálculo de la expresión 𝑑 = 𝑎+𝑏 𝑐−𝑎 2 𝑎𝑐 , donde a = 1, b = 2, c = 3. Variables de valor numérico: Operaciones elementales Inicialización de las variables Resultado numérico
  • 11. EME technologies 11/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 • MATLAB trae prácticamente todas las funciones matemáticas que existen.  Propiedades de un número: abs(x), floor(x), round(x), sign(x), ceil(x), mod(x,a),…  Raíces: sqrt(x)  Trigonométricas: sin(x), cos(x), tan(x), sinh(x), cosh(x), tanh(x), asin(x), acos(x), atan(x), atan2(y,x),…  Exponenciales: exp(x), log(x), log10(x), log2(x)  Pero esto es sólo un ejemplo… MATLAB incluye todas las funciones elementales que podemos necesitar.  Cuando necesitemos una función en concreto, la web de MATLAB www.mathworks.com incluye todo tipo de documentación. Variables de valor numérico: Funciones matemáticas
  • 12. EME technologies 12/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 • Cuando sabemos qué función necesitamos, pero no tenemos claro exactamente qué resultado produce o qué variables de entrada necesita, la ayuda de MATLAB resulta muy potente. • Se invoca mediante el comando help.  Por ejemplo, para buscar información de la función sin(x), escribimos: >> help sin Variables de valor numérico: La ayuda de MATLAB
  • 13. EME technologies 13/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 • Cuando sabemos qué función necesitamos, pero no tenemos claro exactamente qué resultado produce o qué variables de entrada necesita, la ayuda de MATLAB resulta muy potente. • Se invoca mediante el comando help.  Por ejemplo, para buscar información de la función sin(x), escribimos: >> help sin Variables de valor numérico: La ayuda de MATLAB Definición de la función Funciones relacionadas
  • 14. EME technologies 14/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 • Son variables que sólo pueden tener dos estados:  Verdadero (true) ó 1  Falso (false) ó 0. • Son de vital importancia, ya que controlarán el flujo del código  Si algo es verdadero, realiza cierta acción, mientras que si es falso, realizamos otra acción. • Se definen asignándoles el valor true o false. >> a = true >> b = false Variables lógicas: Definicion
  • 15. EME technologies 15/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 • Si toman el valor 1 o 0, ¿Por qué no usamos variables numéricas?  Porque MATLAB trabaja con las variables lógicas de forma especial. • Realmente, en ocasiones una variable numérica (de valor 0 o 1) puede desempeñar la misma tarea que una lógica, pero es una buena costumbre distinguir entre ellas. Variables lógicas: Definición Icono de variable lógica MATLAB sólo las asigna 1 byte.
  • 16. EME technologies 16/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Variables lógicas: Operaciones entre variables lógicas • Los tres operadores más comunes entre una o más variables lógicas son los siguientes:  Negación (~): Devuelve el valor contrario de una variable. El contrario de true es false, y viceversa.  Operador AND (&&): Operación entre dos variables. Devuelve el valor true si ambas son true. De lo contrario, devuelve el valor false.  Operador OR (||): Operación entre dos variables. Devuelve el valor true si una de ellas es true. De lo contrario, devuelve el valor false. a b AND OR 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 1
  • 17. EME technologies 17/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Variables lógicas: Operaciones entre variables lógicas • Para escribir una operación más compleja entre varias variables lógicas, se emplean paréntesis para describir el orden en el cual se realizan. • Si a = true y b = false, por ejemplo, se pueden realizar las siguientes operaciones: >> ~a false >> a && b false >> a || b true >> (a && b) || (a && ~b) true
  • 18. EME technologies 18/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Variables lógicas: Generación a partir de variables numéricas • A partir de dos variables numéricas puede construirse una variable lógica. • La variable lógica se obtiene de comparar ambas variables. • Los operadores típicos entre dos variables numéricas a y b son:  Igualdad: >> a == b  No igualdad: >> a ~= b  Mayor que: >> a > b  Mayor o igual que: >> a >= b  Menor que: >> a < b  Menor o igual que: >> a <= b • Todas las operaciones anteriores tienen como resultado una variable lógica.
  • 19. EME technologies 19/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Variables lógicas: Generación a partir de variables numéricas • Ejemplos. A partir de las variables a = 1 y b = 2 >> c = a > b false >> c = a == b false >> c = a ~= b true >> c = (~(a == b)) || (a > b) true
  • 20. EME technologies 20/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Vectores de valores numéricos: Definición • Se trata de una variable a la cual se le asignan varios valores numéricos de forma ordenada. • Para crear un vector cuyas componentes sean 1,2,3,4, y 5, se realiza de la siguiente forma: >> vector = [ 1 , 2 , 3 , 4 , 5 ] • El comando anterior genera una variable llamada vector que contiene los cinco números.
  • 21. EME technologies 21/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Vectores de valores numéricos: Definición • Una vez creado un vector, podemos acceder a una componente poniendo su posición entre paréntesis. • Para acceder a la cuarta componente del vector se escribe: >> vector = [12,21,34,14,500] >> vector(4) ans = 14 • Para extraer parte del vector, por ejemplo desde la segunda componente hasta la cuarta, se escriben separados por dos puntos : >> vector = [12,21,34,14,500] >> vector(2:4) ans = [21,34,14]
  • 22. EME technologies 22/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Vectores de valores numéricos: Definición • Una vez creado un vector, podemos acceder a una componente poniendo su posición entre paréntesis. • Para acceder a la cuarta componente del vector se escribe: >> vector = [12,21,34,14,500] >> vector(4) ans = 14 • Para extraer parte del vector, por ejemplo desde la segunda componente hasta la cuarta, se escriben separados por dos puntos : >> vector = [12,21,34,14,500] >> vector(2:4) ans = [21,34,14]
  • 23. EME technologies 23/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Vectores de valores numéricos: Definición • Una vez creado un vector, podemos acceder a una componente poniendo su posición entre paréntesis. • Para acceder a la cuarta componente del vector se escribe: >> vector = [12,21,34,14,500] >> vector(4) ans = 14 • Para extraer parte del vector, por ejemplo desde la segunda componente hasta la cuarta, se escriben separados por dos puntos : >> vector = [12,21,34,14,500] >> vector(2:4) ans = [21,34,14]
  • 24. EME technologies 24/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Vectores de valores numéricos: Definición • Los vectores en MATLAB no tienen tamaño fijo. • Por ejemplo. Creamos un vector de cinco componentes: >> vector = [3,2,6,4,10] • Si se trata de acceder a la posición 6, MATLAB devuelve el siguiente error: >> vector(6) Index exceeds matrix dimensions. • No obstante, podemos añadir un nuevo valor a la posición 6. >> vector(6) = 25 ans = [3,2,6,4,10,25] • De esta forma, podemos incrementar progresivamente el tamaño de un vector. Pero no es recomendable.
  • 25. EME technologies 25/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Vectores de valores numéricos: Funciones aplicadas a un vector • Es posible aplicar funciones a un vector para obtener información de las variables que contienen. Las más destacadas son:  length(x): Devuelve el tamaño del vector x.  norm(x): Devuelve el módulo del vector x  sum(x): Suma todas las componentes del vector x.  prod(x): Multiplica todas las componentes del vector x.  max(x): Devuelve el número más grande que contiene.  min(x): Devuelve el número más pequeño que contiene.  sort(x): Devuelve el vector con las componentes ordenadas de menor a mayor.  mean(x): Devuelve la media de las componentes  unique(x): Devuelve el vector ordenado de menor a mayor, y elimina aquellas componentes que estén repetidas.  TODAS las funciones aplicadas a un número vistas anteriormente (abs, floor, sin, cos, tan, exp) pueden usarse, y las realiza componente a componente.
  • 26. EME technologies 26/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Vectores de valores numéricos: Funciones aplicadas a un vector • Ejemplos. Definimos el vector x = [7,3,7,0,-1] >> length(x) ans = 5 >> norm(x) ans = 10.3923 >> sum(x) ans = 16 >> prod(x) ans = 0 >> max(x) ans = 7 >> min(x) ans = -1 >> sort(x) ans = [-1,0,3,7,7] >> mean(x) ans = 3.2 >> unique(x) ans = [-1,0,3,7] >> sin(x) ans = [0.6570,0.1411,0.6570,0,-0.8415] >> sign(x) ans = [1,1,1,0,-1] >> abs(x) ans = [7,3,7,0,1]
  • 27. EME technologies 27/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Vectores de valores numéricos: Operaciones • Es posible realizar todo tipo de operaciones matemáticas con vectores.  Producto por un escalar. Multiplicar un vector por un número multiplica una a una sus componentes por dicho número. >> vector = [2,4,3,6,7] >> 2*[2,4,3,6,7] ans = [4,8,6,12,14]  Suma de vectores. Dos vectores distintos pueden sumarse si poseen el mismo tamaño >> a = [1,2,3] >> b = [4,5,6] >> c = a + b ans = [4,7,9]  Suma de un número a un vector. Sumar un número a un vector, le suma ese número a cada componente. >> a = [1,2,3] >> a + 2 ans = [3,4,5]
  • 28. EME technologies 28/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Vectores de valores numéricos: Producto/División de vectores? • ¿Qué realizan la operación producto (*) división (/) o potencia (^) ? • Son caracteres reservados para operaciones con matrices. • Si queremos multiplicar, dividir, o elevar dos vectores componente a componente hay que añadir un punto delante al operador para obtener el producto (.*), división (./), y potencia (.^). • En la universidad no se estudian productos componente a componente, si no producto escalar o vectorial, entonces, ¿Para qué se necesita?:  Desde el punto de vista computacional sí es útil. • Ejemplos. Generamos dos vectores a = [1,0,4], y b = [6,8,4]  Producto componente a componente >> c = a.*b c = [6,0,16]  División componente a componente >> c = a./b c = [0.166667, 0 ,1]  Elevar cada componente a un número (por ejemplo las de b al cuadrado) >> c = b.^2 c = [36,64,16]  Elevar cada componente de un vector a otra componente de otro vector >> c = b.^a c = [6,1,256]
  • 29. EME technologies 29/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Vectores de valores numéricos: Productos especiales • ¿Y el producto escalar o vectorial? Tienen funciones específicamente creadas para ello • Producto escalar: la función dot(a,b) realiza el producto escalar de a con b. (Recordatorio: Ԧ𝑎 · 𝑏 = 𝑎1 𝑏1 + 𝑎2 𝑏2 + 𝑎3 𝑏3 + … = Ԧ𝑎 𝑏 cos(𝑎, 𝑏)) Ejemplo. Creando a = [5,0,3] y b = [1,4,-3] >> dot(a,b) ans = -4 ¿Es la única forma? El producto escalar es la suma del producto de las componentes de a y b. >> sum(a.*b) ans = -4 • Producto vectorial: la función cross(a,b) devuelve el producto vectorial de a con b. (¡Sólo tiene sentido con vectores de dimensión 3!) Ejemplo. Creando a = [3,-4,5] y b = [1,0,0] >> c = cross(a,b) c = [0,5,4] El resultado del producto vectorial es perpendicular a los dos vectores originales: El producto escalar con ellos debería ser 0 >> dot(a,c) ans = 0
  • 30. EME technologies 30/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Vectores de valores numéricos: Otros métodos de generar vectores • Mediante los dos puntos. Genera un vector que empieza en cierto valor inicial, termina en un valor final, y el salto entre componentes es un cierto paso. La notación es la siguiente: >> valor_inicial : paso : valor_final Ejemplo. Vector que comienza en cero, termina en 9, y existe un salto entre variables de valor 2 >> v = 0:2:9 ans = [0,2,4,6,8] Otro ejemplo. Un vector que comienza en 0, termina en 𝟐𝝅 y realiza saltos de 𝝅/𝟐 >> v = 0 : pi/2 : 2*pi ans = [0, 1.57, 3.14, 4.71, 6.28] • Mediante la función linspace. Igualmente genera un vector que empieza en cierto valor y termina en otro valor, pero en lugar de introducir el paso, se introduce la cantidad de puntos que se desean. >> linspace( valor_inicial , valor_final , Numero_puntos ) >> v = linspace( 0 , 9 , 5) ans = [ 0, 2.25, 4.5, 6.75, 9 ]
  • 31. EME technologies 31/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Vectores de valores numéricos: Otros métodos de generar vectores • Mediante los dos puntos. Genera un vector que empieza en cierto valor inicial, termina en un valor final, y el salto entre componentes es un cierto paso. La notación es la siguiente: >> valor_inicial : paso : valor_final Ejemplo. Vector que comienza en cero, termina en 9, y existe un salto entre variables de valor 2 >> v = 0:2:9 >> v = 1:2:9 ans = ans = [0,2,4,6,8] [1,3,5,7,9] Otro ejemplo. Un vector que comienza en 0, termina en 𝟐𝝅 y realiza saltos de 𝝅/𝟐 >> v = 0 : pi/2 : 2*pi ans = [0, 1.57, 3.14, 4.71, 6.28] • Mediante la función linspace. Igualmente genera un vector que empieza en cierto valor y termina en otro valor, pero en lugar de introducir el paso, se introduce la cantidad de puntos que se desean. >> linspace( valor_inicial , valor_final , Numero_puntos ) >> v = linspace( 0 , 9 , 5) ans = [ 0, 2.25, 4.5, 6.75, 9 ] Valores inicial, final, y paso no son coherentes
  • 32. EME technologies 32/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Vectores de valores numéricos: Otros métodos de generar vectores • Mediante los dos puntos. Genera un vector que empieza en cierto valor inicial, termina en un valor final, y el salto entre componentes es un cierto paso. La notación es la siguiente: >> valor_inicial : paso : valor_final Ejemplo. Vector que comienza en cero, termina en 9, y existe un salto entre variables de valor 2 >> v = 0:2:9 >> v = 1:2:9 ans = ans = [0,2,4,6,8] [1,3,5,7,9] Otro ejemplo. Un vector que comienza en 0, termina en 𝟐𝝅 y realiza saltos de 𝝅/𝟐 >> v = 0 : pi/2 : 2*pi ans = [0, 1.57, 3.14, 4.71, 6.28] • Mediante la función linspace. Igualmente genera un vector que empieza en cierto valor y termina en otro valor, pero en lugar de introducir el paso, se introduce la cantidad de puntos que se desean. >> linspace( valor_inicial , valor_final , Numero_puntos ) >> v = linspace( 0 , 9 , 5) ans = [ 0, 2.25, 4.5, 6.75, 9 ] Valores inicial, final, y paso no son coherentes El paso será 𝒑 = 𝟗−𝟎 𝟓 = 2.25
  • 33. EME technologies 33/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Vectores de valores numéricos: Concatenación de vectores • Concatenar se refiere a colocar un vector detrás de otro. • Para realizar esta operación en MATLAB, se colocan los vectores a unir entre corchetes. >> v_unido = [ vec1, vec2, vec3 ] • Los vectores a unir no tienen porqué tener el mismo tamaño • Ejemplo. >> vec1 = [1,2,3] >> vec2 = [0,1,3,0] >> vec3 = [9,8] >> v_unido = [vec1,vec2,vec3] >> v_unido = [1,2,3,0,1,3,0,9,8]
  • 34. EME technologies 34/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Vectores de valores numéricos: Concatenación de vectores • Concatenar se refiere a colocar un vector detrás de otro. • Para realizar esta operación en MATLAB, se colocan los vectores a unir entre corchetes. >> v_unido = [ vec1, vec2, vec3 ] • Los vectores a unir no tienen porqué tener el mismo tamaño • Ejemplo. >> vec1 = [1,2,3] >> vec2 = [0,1,3,0] >> vec3 = [9,8] >> v_unido = [vec1,vec2,vec3] >> v_unido = [1,2,3,0,1,3,0,9,8]
  • 35. EME technologies 35/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Matrices de valores numéricos: Definición • ¡Todo lo contado anteriormente es mentira! • No existen ni las variables tipo número, ni los vectores. • Para MATLAB todo son matrices (MAT-LAB = Matrix laboratory)  Un número es una matriz 1x1.  Un vector es una matriz fila (1xN), o una matriz columna (Nx1). • Definiendo a = 1 y b = [1,2,3], en el explorador de variables (workspace):
  • 36. EME technologies 36/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Matrices de valores numéricos: Definición • ¡Todo lo contado anteriormente es mentira! • No existen ni las variables tipo número, ni los vectores. • Para MATLAB todo son matrices (MAT-LAB = Matrix laboratory)  Un número es una matriz 1x1.  Un vector es una matriz fila (1xN), o una matriz columna (Nx1). • Definiendo a = 1 y b = [1,2,3], en el explorador de variables (workspace):
  • 37. EME technologies 37/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Matrices de valores numéricos: Definición • Son variables que almacenan NxM números ordenados en N filas y M columnas. • Para generar la matriz A = 1 5 −4 0 se introduce de forma similar a un vector: Entre corchetes, y por filas, separando las filas por punto y coma (;). >> A = [1 , 5 ; -4 , 0] A = 1 5 -4 0
  • 38. EME technologies 38/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Matrices de valores numéricos: Definición • Son variables que almacenan NxM números ordenados en N filas y M columnas. • Para generar la matriz A = 1 5 −4 0 se introduce de forma similar a un vector: Entre corchetes, y por filas, separando las filas por punto y coma (;). >> A = [1 , 5 ; -4 , 0] A = 1 5 -4 0
  • 39. EME technologies 39/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Matrices de valores numéricos: Definición • Son variables que almacenan NxM números ordenados en N filas y M columnas. • Para generar la matriz A = 1 5 −4 0 se introduce de forma similar a un vector: Entre corchetes, y por filas, separando las filas por punto y coma (;). >> A = [1 , 5 ; -4 , 0] A = 1 5 -4 0
  • 40. EME technologies 40/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Matrices de valores numéricos: Definición • Acceder a un elemento de la matriz: A partir de la matriz anterior >> A = [1 , 5 ; -4 , 0] • Para acceder al elemento situado en la fila 1 y columna 2, existen dos posibilidades  Escribir entre paréntesis en primer lugar la fila, y en segundo lugar la columna >> A(1,2) ans = 5  MATLAB ordena internamente la matriz por columnas (las dos primeras posiciones las ocupa la columna 1, y las dos segundas posiciones las ocupa la columna 2) A = 1 5 −4 0 En este caso, el elemento en la fila 1 y columna 2 sería el tercer elemento que almacena MATLAB, y se podría acceder: >> A(3) ans = 5
  • 41. EME technologies 41/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Matrices de valores numéricos: Definición • Acceder a un elemento de la matriz: A partir de la matriz anterior >> A = [1 , 5 ; -4 , 0] • Para acceder al elemento situado en la fila 1 y columna 2, existen dos posibilidades  Escribir entre paréntesis en primer lugar la fila, y en segundo lugar la columna >> A(1,2) ans = 5  MATLAB ordena internamente la matriz por columnas (las dos primeras posiciones las ocupa la columna 1, y las dos segundas posiciones las ocupa la columna 2) A = 1 5 −4 0 En este caso, el elemento en la fila 1 y columna 2 sería el tercer elemento que almacena MATLAB, y se podría acceder: >> A(3) ans = 5 Primera columna Segunda columna
  • 42. EME technologies 42/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Matrices de valores numéricos: Definición • Acceder a un elemento de la matriz: A partir de la matriz anterior >> A = [1 , 5 ; -4 , 0] • Para acceder al elemento situado en la fila 1 y columna 2, existen dos posibilidades  Escribir entre paréntesis en primer lugar la fila, y en segundo lugar la columna >> A(1,2) ans = 5  MATLAB ordena internamente la matriz por columnas (las dos primeras posiciones las ocupa la columna 1, y las dos segundas posiciones las ocupa la columna 2) A = 1 5 −4 0 En este caso, el elemento en la fila 1 y columna 2 sería el tercer elemento que almacena MATLAB, y se podría acceder: >> A(3) ans = 5 Primera columna Segunda columna Esto es demasiado lioso, ¿No creéis? Es más recomendable esta opción
  • 43. EME technologies 43/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Matrices de valores numéricos: Definición • De la misma forma, para acceder a una submatriz obtenida de seleccionar un rango de filas y un rango de columnas se realiza mediante los dos puntos.  Ejemplo. De una matriz 4x4 se extraen las filas 2 y 3, y las columnas 3 y 4: >> A = [1,0,1,0;2,-1,0,5;-3,4,3,0;0,0,0,1] A = 1 0 1 0 2 -1 0 5 -3 4 3 0 0 0 0 1 >> A( 2:3 , 3:4) ans = 0 5 3 0 • Para extraer una determinada fila o columna completa se selecciona dicha fila o columna y el argumento libre se deja con dos puntos (:)  Ejemplo. De la matriz anterior, extraer la fila 3 y la columna 2 >> A ( 3 , : ) >> A ( : , 2 ) ans = ans = -3 4 3 0 0 -1 3
  • 44. EME technologies 44/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Matrices de valores numéricos: Definición • De la misma forma, para acceder a una submatriz obtenida de seleccionar un rango de filas y un rango de columnas se realiza mediante los dos puntos.  Ejemplo. De una matriz 4x4 se extraen las filas 2 y 3, y las columnas 3 y 4: >> A = [1,0,1,0;2,-1,0,5;-3,4,3,0;0,0,0,1] A = 1 0 1 0 2 -1 0 5 -3 4 3 0 0 0 0 1 >> A( 2:3 , 3:4) ans = 0 5 3 0 • Para extraer una determinada fila o columna completa se selecciona dicha fila o columna y el argumento libre se deja con dos puntos (:)  Ejemplo. De la matriz anterior, extraer la fila 3 y la columna 2 >> A ( 3 , : ) >> A ( : , 2 ) ans = ans = -3 4 3 0 0 -1 3 1 2 3 4 1 2 3 4
  • 45. EME technologies 45/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Matrices de valores numéricos: Definición • De la misma forma, para acceder a una submatriz obtenida de seleccionar un rango de filas y un rango de columnas se realiza mediante los dos puntos.  Ejemplo. De una matriz 4x4 se extraen las filas 2 y 3, y las columnas 3 y 4: >> A = [1,0,1,0;2,-1,0,5;-3,4,3,0;0,0,0,1] A = 1 0 1 0 2 -1 0 5 -3 4 3 0 0 0 0 1 >> A( 2:3 , 3:4) ans = 0 5 3 0 • Para extraer una determinada fila o columna completa se selecciona dicha fila o columna y el argumento libre se deja con dos puntos (:)  Ejemplo. De la matriz anterior, extraer la fila 3 y la columna 2 >> A ( 3 , : ) >> A ( : , 2 ) ans = ans = -3 4 3 0 0 -1 4 1 2 3 4 1 2 3 4
  • 46. EME technologies 46/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Matrices de valores numéricos: Definición • En conclusión, para cada una de las dos posiciones de una matriz se pueden utilizar tres opciones:  Seleccionar un valor. Por ejemplo el elemento 3.  Seleccionar un rango de valores. Por ejemplo desde 1 hasta 4 sería 1:4  Seleccionar todos los valores posibles. Mediante los dos puntos ( : ) A(3) 3 6 -5 0 2 3 A(1:4) 3 6 -5 0 2 3 A(:) 3 6 -5 0 2 3
  • 47. EME technologies 47/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Matrices de valores numéricos: Funciones aplicadas a matrices • Todas las funciones vistas para números, sirven también para matrices >> A = [1.3, 5.4 ; -1 , 0] A = 1.3 5.4 -1.3 0.2 >> floor(A) ans 1 5 -2 0 • Las funciones vistas para vectores las aplica por columnas. Es decir:  La función sum(A) devuelve un vector fila cuya componente 2 es la suma de las componentes de la segunda columna de la matriz >> A = [1 , 3 ; 5 , 6] A = 1 3 5 6 >> sum(A) ans = 6 9
  • 48. EME technologies 48/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Matrices de valores numéricos: Funciones aplicadas a matrices • Todas las funciones vistas para números, sirven también para matrices >> A = [1.3, 5.4 ; -1 , 0] A = 1.3 5.4 -1.3 0.2 >> floor(A) ans 1 5 -2 0 • Las funciones vistas para vectores las aplica por columnas. Es decir:  La función sum(A) devuelve un vector fila cuya componente 2 es la suma de las componentes de la segunda columna de la matriz >> A = [1 , 3 ; 5 , 6] A = 1 3 5 6 >> sum(A) ans = 6 9 Las realiza número a número
  • 49. EME technologies 49/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Matrices de valores numéricos: Funciones aplicadas a matrices • Todas las funciones vistas para números, sirven también para matrices >> A = [1.3, 5.4 ; -1 , 0] A = 1.3 5.4 -1.3 0.2 >> floor(A) ans 1 5 -2 0 • Las funciones vistas para vectores las aplica por columnas. Es decir:  La función sum(A) devuelve un vector fila cuya componente 2 es la suma de las componentes de la segunda columna de la matriz >> A = [1 , 3 ; 5 , 6] A = 1 3 5 6 >> sum(A) ans = 6 9 Las realiza número a número
  • 50. EME technologies 50/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Matrices de valores numéricos: Funciones aplicadas a matrices • También hay funciones orientadas a matrices, pero como se ha visto también pueden aplicarse a vectores o números.  size(A): Devuelve un vector con el número de filas y columnas que contiene la matriz  Si se aplica a un vector devolverá el valor [1,N] si es un vector fila, o el valor [N,1] si es vector columna.  transpose(A): Devuelve la matriz transpuesta.  ¡Serviría para pasar de vector fila, a vector columna!  inv(A): Devuelve la matriz inversa  ¡Sólo si la matriz es cuadrada!  det(A): Devuelve el determinante de la matriz.  ¡Sólo si la matriz es cuadrada!  eig(A): Devuelve los autovalores de la matriz.  ¡Sólo si la matriz es cuadrada!
  • 51. EME technologies 51/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Matrices de valores numéricos: Operaciones con matrices • Producto por un escalar: Multiplicar una matriz por un número multiplica una a una sus componentes por dicho número. >> A = [1, 2, 3 ; 0, 3, 0] A = 1 2 3 0 3 0 >> 3*A ans = 3 6 9 0 9 0 • Suma y resta de matrices: Puede realizarse siempre que las dos matrices posean el mismo tamaño. >> A = [1,2 ; 4,5] >> B = [0,1 ; 1,0 ] A = B = 1 2 0 1 4 5 1 0 >> A + B >> A – 2*B ans = ans = 1 3 1 0 5 5 2 5
  • 52. EME technologies 52/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Matrices de valores numéricos: Operaciones con matrices • Producto matricial: La operación A * B no multiplica componente a componente, si no que realiza el producto matricial de las matrices A y B.  Este tipo de producto sólo puede realizarse si el número de columnas de A es igual al número de filas de B. 𝐴 𝑛 𝑎 𝑥 𝑚 𝑎 ∗ 𝐵 𝑛 𝑏 𝑥 𝑚 𝑏 = 𝐶[𝑛 𝑎 𝑥 𝑚 𝑏] >> A = [1, 0, 2; 0, 0, 3] >> A*B A = ans = 1 0 2 6 1 0 0 3 9 0 >> B = [0, 1; 5, 4; 3, 0] >> B*A B = ans = 0 1 0 0 3 5 4 5 0 22 3 0 3 0 6
  • 53. EME technologies 53/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Matrices de valores numéricos: Operaciones con matrices • Producto matricial: La operación A * B no multiplica componente a componente, si no que realiza el producto matricial de las matrices A y B.  Este tipo de producto sólo puede realizarse si el número de columnas de A es igual al número de filas de B. 𝐴 𝑛 𝑎 𝑥 𝑚 𝑎 ∗ 𝐵 𝑛 𝑏 𝑥 𝑚 𝑏 = 𝐶[𝑛 𝑎 𝑥 𝑚 𝑏] >> A = [1, 0, 2; 0, 0, 3] >> A*B A = ans = 1 0 2 6 1 0 0 3 9 0 >> B = [0, 1; 5, 4; 3, 0] >> B*A B = ans = 0 1 0 0 3 5 4 5 0 22 3 0 3 0 6
  • 54. EME technologies 54/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Matrices de valores numéricos: Operaciones con matrices • Podemos realizar operaciones componente a componente igual que en vectores, con el operador (.*) >> A = [1, 0; 4, 5; 0, 3] A = 1 0 4 5 0 3 >> B = [ 0, 1; 3, 5; 9, 3] B = 0 1 3 5 9 3 >> A .* B ans = 0x1=0 0x1=0 4x3=12 5x5=25 0x9=9 3x3=9
  • 55. EME technologies 55/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Matrices de valores numéricos: Operaciones con matrices • En cuanto a la división, existen dos tipos.  Mediante la barra slash (/), la cual se llama right matrix divide, y calcula la siguiente cantidad. A / B = A*inv(B)  Esta función no es muy útil.  Mediante la barra backslash (), la cual se llama left matrix divide, y calcula la siguiente cantidad. A B = inv(A) * B  Esta función es muy útil. Si se considera el sistema A*x = B, su resultado: x = inv(A)*B Lo calcularemos con esta función: x = AB ¿Por qué no hacer directamente inv(A)*B? Porque AB no calcula la matriz inversa, si no que resuelve el sistema por otros métodos más eficientes computacionalmente. Ejemplo. Resolver el sistema Ax = B con >> A = [1, 2 ; 3, 0] >> B = [0 ; 1] >> x = AB B = ans = 0 [0.333, -0.16667] 1
  • 56. EME technologies 56/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Matrices de valores numéricos: Operaciones con matrices • En cuanto a la división, existen dos tipos.  Mediante la barra slash (/), la cual se llama right matrix divide, y calcula la siguiente cantidad. A / B = A*inv(B)  Esta función no es muy útil.  Mediante la barra backslash (), la cual se llama left matrix divide, y calcula la siguiente cantidad. A B = inv(A) * B  Esta función es muy útil. Si se considera el sistema A*x = B, su resultado: x = inv(A)*B Lo calcularemos con esta función: x = AB ¿Por qué no hacer directamente inv(A)*B? Porque AB no calcula la matriz inversa, si no que resuelve el sistema por otros métodos más eficientes computacionalmente. Ejemplo. Resolver el sistema Ax = B con >> A = [1, 2 ; 3, 0] >> B = [0 ; 1] >> x = AB ¿Qué resultado da A*x? ans = [0.333, -0.16667] >> A*x = [0,1] = B
  • 57. EME technologies 57/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Matrices de valores numéricos: Operaciones con matrices • De esta forma, para la resolución de un sistema lineal de ecuaciones, siempre usaremos la barra . A*x = B ? x = AB • Para que un sistema tenga solución única, deberá estar completamente determinado, lo que implica que el determinante de la matriz A de coeficientes deberá tener un determinante distinto de cero. • Si se trata de resolver un sistema con infinitas soluciones o indeterminado, la solución no es válida (aunque MATLAB por defecto devuelve algún valor). • Ejemplo. >> A = [ 1 , 2 ; 2, 4] >> B = [ 0 ; 1] A = B = 1 2 0 2 4 1 >> det(A) ans = 0 >> x = AB Warning: Matrix is singular to working precision
  • 58. EME technologies 58/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Matrices de valores numéricos: Operaciones con matrices • Podemos realizar operaciones componente a componente igual que en vectores, con el operador (./) >> A = [1, 0; 4, 5; 0, 3] A = 1 0 4 5 0 3 >> B = [ 0, 1; 3, 5; 9, 3] B = 0 1 3 5 9 3 >> A ./ B ans = 1/0=Inf 0x1 = 0 4/3=1.33 5/5 = 1 0/9=0 3/3 = 1
  • 59. EME technologies 59/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Matrices de valores numéricos: Concatenación • Igual que se pueden concatenar vectores, es decir, colocar uno detrás de otro, pueden concatenarse matrices. • La forma de realizarse en MATLAB es igual, colocando las matrices a unir entre corchetes, y separándolas:  Por coma (,) cuando deseamos poner una seguida de la otra  Por punto y coma (;) cuando deseamos poner una debajo de la otra • Ejemplo. >> A = [1 , 2 ; 0 , 4] >> C = [A , B] A = C = 1 2 1 2 5 6 3 -4 0 4 3 -4 >> B = [ 5 , 6 ; 0 , 7 ] >> C = [A ; B] B = C = 5 6 1 2 0 4 0 4 5 6 3 -4
  • 60. EME technologies 60/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Matrices de valores numéricos: Concatenación • Igual que se pueden concatenar vectores, es decir, colocar uno detrás de otro, pueden concatenarse matrices. • La forma de realizarse en MATLAB es igual, colocando las matrices a unir entre corchetes, y separándolas:  Por coma (,) cuando deseamos poner una seguida de la otra  Por punto y coma (;) cuando deseamos poner una debajo de la otra • Ejemplo. >> A = [1 , 2 ; 0 , 4] >> C = [A , B] A = C = 1 2 1 2 5 6 0 4 0 4 3 -4 >> B = [ 5 , 6 ; 0 , 7 ] >> C = [A ; B] B = C = 5 6 1 2 3 -4 0 4 5 6 3 -4 A B A B
  • 61. EME technologies 61/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Matrices de valores numéricos: Funciones para generar matrices • Es posible generar matrices de distintas formas:  zeros(n,m): Genera una matriz con n filas y m columnas en la que todos sus valores valen cero.  ones(n,m): Genera una matriz con n filas y m columnas en la que todos sus valores valen uno.  eye(n): Genera una matriz identidad con n filas y n columnas  rand(n,m): Genera una matriz con n filas y m columnas en las que sus valores son números aleatorios entre 0 y 1.
  • 62. EME technologies 62/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Variables de caracteres: Definición • Las variables tipo string almacenan cualquier carácter alfanumérico. • Para definir un string, se incluye su contenido entre apóstrofes (‘). >> str = ‘mi primer string’ • Desde el punto de vista del almacenamiento de datos, trabaja con ellos de forma idéntica a un vector, es decir, para acceder a la letra en la posición 4, se escribe: >> str(4) ans = p • Concatenar strings significa colocar uno detrás del otro, lo cual se realiza colocándolos entre corchetes por orden >> str1 = ‘EME’ >> str2 = ‘TECHNOLOGIES’ >> [str1,’ ‘,str2] ans = EME TECHNOLOGIES
  • 63. EME technologies 63/16Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Variables de caracteres: Funciones útiles • Para comparar dos strings, existen dos posibilidades en función de los requisitos.  La función strcmp(str1,str2) compara los strings str1 y str2, devolviendo el valor true si son exactamente iguales, y false en caso contrario. >> strcmp(‘e’,’E’) ans = 0  La función strcmpi(str1,str2) compara los strings str1 y str2, devolviendo el valor true si son iguales sin tener en cuenta las mayúsculas, y false en caso contrario. >> strcmpi(‘e’,’E’) ans = 1 • Para convertir una variable numérica en un string cuyo contenido sea el valor de la variable, se emplea la función num2str(var) (numerical to string). >> num2str(2) ans = ‘2’ • Del mismo modo, para convertir un string con contenido numérico a una variable numérica cuyo valor es el contenido del string se utiliza la función str2num(str). >> str2num( ‘2.345’ ) ans = 2.345
  • 64. EME technologies Introducción a MATLAB – Ingeniería aplicada a la competición20/02/2016 Fin. Siguiente tema: “Gestión del flujo del código.”