Está en la página 1de 86

SEMINARIO INTRODUCCIÓN A

MATLAB-SIMULINK.

Ing. Dennys Cortez Alvarez.


19/09/21 ESPOL-FIEC. 1
SEMINARIO INTRODUCCIÓN A

MATLAB-SIMULINK.

• DENNYS DICK CORTEZ ALVAREZ.


• dcortez@espol.edu.ec –
dcortez@fiec.espol.edu.ec

• ESCUELA SUPERIOR POLITECNICA


DEL LITORAL
• Guayaquil – Ecuador.
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 2
SEMINARIO INTRODUCCIÓN A

MATLAB-SIMULINK.
• Programa
 Características generales de MatLab.
 Comandos básicos.
 Control de flujo de instrucciones.
 Funciones.
 Arreglos (Vectores, Matrices, Hipermatrices).
 Estructuras.
 Gráficos 2D, 3D.
 Programación en MatLab.

Ing. Dennys Cortez Alvarez.


19/09/21 ESPOL-FIEC. 3
Arreglos (Vectores,
Matrices, Hipermatrices).
• MATLAB trabaja esencialmente con matrices de números
reales o complejos. Las matrices 1x1 son interpretadas
como escalares y las matrices fila o columna como
vectores.
• Por defecto todas las variables son matriciales y nos
podemos referir a un elemento con dos índices. Aún así,
conviene saber que la matriz está guardada por columnas
y que nos podemos referir a un elemento empleando sólo
un índice, siempre que contemos por columnas.
Insistiremos bastante en este detalle, porque tiene
fuertes implicaciones para entender el funcionamiento de
bastantes aspectos de MATLAB.
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 4
Arreglos (Vectores,
Matrices, Hipermatrices).
• Ejercicio 4.
• Ej: Guardarlo como (nombre_avmh.m)

• Realizar todas las instrucciones que


veremos de arreglos.

Ing. Dennys Cortez Alvarez.


19/09/21 ESPOL-FIEC. 5
Arreglos (Vectores,
Matrices, Hipermatrices).

• Creación de un vector fila


• x = [1 2 3 4];
Creación de un vector columna
• y = [1;2;3;4]
• y= 1
• 2
• 3
• 4
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 6
Arreglos (Vectores,
Matrices, Hipermatrices).

• El vector anterior se pudo haber creado así:


• y = x’ % el apóstrofe implica trasponer la
fila
• Búsqueda de un término específico en el
vector, sea
• x(2)
• ans =
• 2
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 7
Arreglos (Vectores,
Matrices, Hipermatrices).
• También se pueden crear arreglos así:

• t = 0:0.1:1
• t=
• 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
• linspace(a,b,n)

• t = linspace(0,1,11)
• t=
• 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 8
Arreglos (Vectores,
Matrices, Hipermatrices).
• logspace(d1,d2,n)
• Genera un arreglo logarítmico de 10^d1 a 10^d2 con n
puntos

• w = logspace(-1,2,n);
• Genera un arreglo logarítmico de 10^-1 a 10^2 con n
puntos

• w = logspace(-1,2)
• Genera un arreglo logarítmico de10^-1 a 10^2 con 50
puntos
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 9
Arreglos (Vectores,
Matrices, Hipermatrices).

• Dimensión de un vector

• Se utiliza el comando length

• length(t)
• ans =
• 11
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 10
Arreglos (Vectores,
Matrices, Hipermatrices).
• Matrices
• g = [1 2 3;4 5 6];

• h=[1 2 3 % dar retorno


• 4 5 6 % dar retorno
• 7 8 9]
• h=

• 1 2 3
• 4 5 6
• 7 8 9
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 11
Arreglos (Vectores,
Matrices, Hipermatrices).

• Restar una constante a una matriz,


término a término
• z =g – 2
• z=
• -1 0 1
• 234

Ing. Dennys Cortez Alvarez.


19/09/21 ESPOL-FIEC. 12
Arreglos (Vectores,
Matrices, Hipermatrices).

• Multiplicar una matriz por una


constante y restarle al resultado una
constante
• y = 2*g -1
•y=
• 135
• 7 9 11
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 13
Arreglos (Vectores,
Matrices, Hipermatrices).
• Multiplicación de matrices término a término
• Sea x = [1 4 5;3 1 6] y g = [1 2 3;4 5 6]
• Entonces
• g.*x % para ello se agrega el punto

• ans=
• 1 8 15
• 12 5 36
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 14
Arreglos (Vectores,
Matrices, Hipermatrices).

• Si se escribe
• g*x da error, pues no se da la
condición para la multiplicación de
matrices, ya que ambas matrices son
de dimensión 2x3
• Si se escribe
• g*x’ Si sería válida la multiplicación
matricial
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 15
Arreglos (Vectores,
Matrices, Hipermatrices).
• Sea el caso de la división término a término
• x = [1 4 5;3 1 6] y g = [1 2 3;4 5 6]

• g./x división por la derecha


• ans=
• 1.0000 0.5000 0.6000
• 1.3333 5.0000 1.0000
• g.\x división por la izquierda
• ans =
• 1.0000 2.0000 1.6667
• 0.7500 0.2000 1.0000
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 16
Arreglos (Vectores,
Matrices, Hipermatrices).
• Exponenciación término a término
• g.^2
• ans=
• 1 4 9
• 16 25 36

• 2.^g
• ans =
• 2 4 8
• 16 32 64

Ing. Dennys Cortez Alvarez.


19/09/21 ESPOL-FIEC. 17
Arreglos (Vectores,
Matrices, Hipermatrices).
• En el caso de arreglos complejos, cuando se realiza
• la transpuesta, el signo de la parte imaginaria cambia.
• Sea
• a =1:2
• a=
• 12
• d = a + i*a
• d =
• 1.0000 + 1.0000i 2.0000 + 2.0000i
• e = d’
• e =
• 1.0000 –1.0000i
• 2.0000 – 2.0000i

Ing. Dennys Cortez Alvarez.


19/09/21 ESPOL-FIEC. 18
Arreglos (Vectores,
Matrices, Hipermatrices).
• Para que se mantenga el signo en la
transpuesta
• se debe poner un punto antes del apóstrofo
• d =
• 1.0000 + 1.0000i 2.0000 + 2.0000i
• f = d.’
• f=
• 1.0000 + 1.0000i
• 2.0000 + 2.0000i

Ing. Dennys Cortez Alvarez.


19/09/21 ESPOL-FIEC. 19
Arreglos (Vectores,
Matrices, Hipermatrices).
• Arreglo de unos y ceros
• ones(2)
• ans =
• 1 1
• 1 1
• zeros(2,3)
• ans =
• 000
• 000
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 20
Arreglos (Vectores,
Matrices, Hipermatrices).
• Dimensión de una matriz

• Sea a = [1 4 7; 3 5 8]
• a=
• 147
• 358
• Con el comando size(a) se obtiene su dimensión
• size(a)
• ans =
• 2 3
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 21
Arreglos (Vectores,
Matrices, Hipermatrices).

• ones(size(a))
• ans =
• 111
• 111

Ing. Dennys Cortez Alvarez.


19/09/21 ESPOL-FIEC. 22
Arreglos (Vectores,
Matrices, Hipermatrices).
• Manipulación de arreglos
• a = [1 4 7;3 5 8];

• Sea a(2,2) = 0 % anular un término


• a=
• 147
• 308
• a(:,1) = 4 % Obligar a los términos de la columna 1
• % a que valgan 4
• ans=
• 447
• 408
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 23
Arreglos (Vectores,
Matrices, Hipermatrices).

• a(:,3) % Buscar los términos


% de la columna 3
• ans =
• 7
• 8

Ing. Dennys Cortez Alvarez.


19/09/21 ESPOL-FIEC. 24
Arreglos (Vectores,
Matrices, Hipermatrices).
• Crear una matriz a partir de otra

• B = [1 2 3;4 5 6;7 8 9]
• B=
• 123
• 456
• 789

• C=B(2:3,1:2)
• C=
• 45
• 78
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 25
Arreglos (Vectores,
Matrices, Hipermatrices).

• B(:,2) = [ ] Eliminar una columna


• B=
• 1 3
• 4 6
• 7 9
• Se deben eliminar filas y/o columnas
completas

Ing. Dennys Cortez Alvarez.


19/09/21 ESPOL-FIEC. 26
Arreglos (Vectores,
Matrices, Hipermatrices).

• D = B(:) % ordena columna tras columna


• D=
• 1
• 4
• 7
• 3
• 6
• 9
• F= D.’ % transponer
• F=
• 147369
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 27
Arreglos (Vectores,
Matrices, Hipermatrices).
• Comparación de arreglos

• A = [1 2 3;4 5 6;7 8 9];


• B = [3 5 7;4 9 6;3 2 1];
• isequal(A,B) % devuelve 1 si los arreglos tienen
%igual dimensión y términos
%idénticos.

• ans =
• 0
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 28
Arreglos (Vectores,
Matrices, Hipermatrices).
• ismember identifica términos de la
primera matriz que no están en la
segunda.

• ismember(A,B)
• ans =

• 1 1 1
• 1 1 1
• 1 0 1
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 29
Arreglos (Vectores,
Matrices, Hipermatrices).
• Conjunto de ecuaciones lineales
1 2 3  x1  366 
 4 5 6   x   804 
  2  
7 8 0   x3   351

1
• Ax = b xA b
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 30
Arreglos (Vectores,
Matrices, Hipermatrices).
• Para resolver dicha ecuación con MATLAB se
utiliza el siguiente comando:

• x = inv(A)*b;
• o
• x=A\b
• x = 25.0
• 22.0
• 99.0
• Ambos resultados son iguales
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 31
Arreglos (Vectores,
Matrices, Hipermatrices).

• Cuando el número de ecuaciones es


diferente al número de incógnitas no
existe solución única.
• Sea el caso de mas ecuaciones que
incógnitas, el operador de división
automáticamente halla la solución que
minimiza el error cuadrático en
• Ax – b = 0

Ing. Dennys Cortez Alvarez.


19/09/21 ESPOL-FIEC. 32
Arreglos (Vectores,
Matrices, Hipermatrices).

• A = [1 2 3;4 5 6;7 8 0;2 5 8];


• b = [366;804;351;514];

• x = A\b
• x =
• 247.9818
• -173.1091
• 114.9273
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 33
Arreglos (Vectores,
Matrices, Hipermatrices).
• Cuando hay menos ecuaciones que incógnitas,
• existen infinitas soluciones. MATLAB da dos
• soluciones, una con el número máximo de
• ceros y otra con la norma mínima
• A= [1 4 7 2;2 5 8 5;3 6 0 8];
• b = [366;804;351];

• x = A\b
• x=
• 0
• -165.9000
• 99.0000
• 168.0000

Ing. Dennys Cortez Alvarez.


19/09/21 ESPOL-FIEC. 34
Arreglos (Vectores,
Matrices, Hipermatrices).
• Solución con norma mínima
• xn = pinv(A)*b

• xn=
• 30.8182
• -168.9818
• 99.0000
• 159.0545

• norma(xn) = 254,173

• norma(x) = 256.2200
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 35
Arreglos (Vectores,
Matrices, Hipermatrices).

• Funciones matriciales

• det(A) Determinante de A
• [v,d]=eig(A) Vectores y raíces de A
• inv(A) Inversa de A
• poly(A) Polinomio característico de A
• polyvalm(p,A) Evalúa el polinomio p con argumento
• matricial
• trace(A) Suma de los elemento de la diagonal

Ing. Dennys Cortez Alvarez.


19/09/21 ESPOL-FIEC. 36
Arreglos (Vectores,
Matrices, Hipermatrices).

• Operaciones con polinomios


• En MATLAB un polinomio se representa por un vector fila que
contiene sus coeficientes.
• Sea el polinomio representado por:

x  12 x  25 x  116  0
4 3

• Su representación mediante MATLAB es:


• p=[1 -12 0 25 116]
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 37
Arreglos (Vectores,
Matrices, Hipermatrices).
• Para obtener las raíces del polinomio anterior se
• utiliza el comando roots
• r = roots(p)
• r=
• 11.473
• 2.7028
• -1.2251 + 1.4672i
• -1.2275 – 1.4672i
• MATLAB adopta la convención de que los polinomios
• son vectores filas y las raíces son vectores columnas
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 38
Arreglos (Vectores,
Matrices, Hipermatrices).
Teniendo las raíces se puede buscar el polinomio que lo
sustenta, mediante el comando poly

• pp = poly( r )
• pp = 1 –12 –1.77642e-14 25 116

Debido a errores de truncamiento, es común que se presenten


coeficientes con valores cercanos a cero. Ello se resuelve
mediante el comando

• pp(abs(pp)<1e-12)=0
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 39
Arreglos (Vectores,
Matrices, Hipermatrices).
Multiplicación de polinomios

Se realiza mediante el comando conv.


Sean los siguientes polinomios a( x)  x 3  2 x 2  3 x  4
b( x)  x 3  4 x 2  9 x  16
Representados utilizando MATLAB, se tiene que
a = [ 1 2 3 4];
b = [1 4 9 16];
c=conv(a,b)
c=
1 6 20 50 75 84 64
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 40
Arreglos (Vectores,
Matrices, Hipermatrices).
• Suma de polinomios
• MATLAB no suministra comandos para la
• realización de la suma o resta de polinomios.
• La suma o resta de polinomios se resuelve
• si los polinomios son del mismo orden.
• a = [ 1 2 3 4];
• b = [1 4 9 16];
• d=a+b
• d=
• 2 6 12 20
• f= a –b
• f=
• 0 –2 –6 –12
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 41
Arreglos (Vectores,
Matrices, Hipermatrices).
• Si los polinomios no son del mismo orden o
• dimensión, se le agregan ceros para llegar
• al orden del polinomio mayor, sea
• c=[1 6 20 60 75 84 64]
• d= [2 6 12 20 ]
• e = c + [0 0 0 d]
• e=
• 1 6 20 62 81 96 84

x  6 x  20 x  62 x  81x  96 x  84
6 5 4 3 2

Ing. Dennys Cortez Alvarez.


19/09/21 ESPOL-FIEC. 42
Arreglos (Vectores,
Matrices, Hipermatrices).
• División de polinomios
• Para ello se utiliza el comando deconv
• c=[1 6 20 50 75 84 64]
• b = [1 4 9 16];

• [q,r] = deconv(c,b)
• Donde q es el cociente y r es el resto
• En este caso,
• q=
• 1234
• y
• r=
• 0000000
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 43
Arreglos (Vectores,
Matrices, Hipermatrices).
• Derivada de un polinomio

• La derivada de un polinomio se obtiene


• con el comando polyder
• Sea g = [1 6 20 48 69 72 44]

• x6 + 6*x5 +20*x4+48*x3+69*x2 +72*x + 44

• h = polyder(g)
• h=
• 6 30 80 144 138 72
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 44
Arreglos (Vectores,
Matrices, Hipermatrices).
• Evaluación de un polinomio

• Para evaluar los polinomios se utiliza el


• comando polyval
p ( x )  x 3
 4 x 2
 7 x  10
• Sea el polinomio

• Se desea evaluarlo para


1  x  3
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 45
Arreglos (Vectores,
Matrices, Hipermatrices).

• x= linspace(-1,3);

• p = [1 4 – 7 –10];

• v = polyval(p,x);

Ing. Dennys Cortez Alvarez.


19/09/21 ESPOL-FIEC. 46
Arreglos (Vectores,
Matrices, Hipermatrices).
• Polinomios racionales
n( x) n1 x m  n2 x m 1  ...  nm 1

d ( x) d1 x n  d 2 x n 1  ...  d n 1

• En MATLAB esta función es considerada como


• dos polinomios independientes. Sea
• n = [1 –10 100];
• d = [1 10 100 0];
• La derivada de esta relación se obtiene así:
• [nd,dd] = polyder(n,d)
• nd = -1 20 –100 –2000 –10000
• dd = 1 20 300 2000 10000 0 0
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 47
Arreglos (Vectores,
Matrices, Hipermatrices).
• Cálculo del residuo
• Para descomponer en fracciones parciales
una una función se utiliza el comando residue
• [r,p,k]=residue(n,d)
• donde
• r : coeficiente de la expansión
• p: polos de la función
• k: el término directo

Ing. Dennys Cortez Alvarez.


19/09/21 ESPOL-FIEC. 48
Arreglos (Vectores,
Matrices, Hipermatrices).
• Para los polinomios n y d anteriores se tiene que
• [r,p,k] = residue(n,d)
• r = 9.7954e-17 + 1.1547i
• 9.7954e-17 - 1.1547i
• 1
• p = -5 +8.6603i
• -5 –8.6603i
• 0
• k = [] % Debido a que el orden del numerador
• % es menor que el orden del denominador
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 49
Arreglos (Vectores,
Matrices, Hipermatrices).
• El resultado es:
n( x ) 1.1547i 1.1547i 1
  
d ( x) x  5  8.6603i x  5  8.6603i x

• Se puede volver al polinomio original mediante


• [nn,dd] = residue(r,p,k)
• nn= 1 –10 100
• dd= 1 10 100 0
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 50
Arreglos (Vectores,
Matrices, Hipermatrices).
• Operadores relacionales y lógicos
• MATLAB considera, que un número no nulo es
• verdadero y cuando es cero que es falso, para las
entradas a las expresiones lógicas y relacionales.
• Las salidas de los expresiones lógicas y
relacionales producen un uno cuando es verdadero
y un cero cuando es falso.
• Los operadores relacionales en MATLAB, pueden
• ser utilizados para comparar arreglos del mismo
• tamaño o comparar un arreglo con un escalar.
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 51
Arreglos (Vectores,
Matrices, Hipermatrices).
• Operadores relacionales

• Operador descripción
• < menor que
• <= menor o igual que
• > mayor que
• >= mayor o igual que
• == igual a
• ~= no igual a
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 52
Arreglos (Vectores,
Matrices, Hipermatrices).
• A = 1:9, B = 9-A
• A=
• 123456789

• B=
• 876543210
• tf = A > 4
• tf =
• 000011111
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 53
Arreglos (Vectores,
Matrices, Hipermatrices).

• df = (A==B)
• df =
• 000000000
• Note la diferencia entre = y ==
• == compara dos variables y retorna un uno si son
iguales y un cero, si no lo son.
• = se usa para asignar la salida de una operación a
una variable.

Ing. Dennys Cortez Alvarez.


19/09/21 ESPOL-FIEC. 54
Arreglos (Vectores,
Matrices, Hipermatrices).
• A= [1 2 3 4 5 6 7 8 9];
• B=[8 7 6 5 4 3 2 1 0];
• tf = B – (A>2)
• tt =
• 8 7 5 4 3 2 1 0 –1.
• Como las salidas de las operaciones lógicas son
arreglos de unos y ceros, pueden ser utilizadas en
operaciones matemáticas

Ing. Dennys Cortez Alvarez.


19/09/21 ESPOL-FIEC. 55
Arreglos (Vectores,
Matrices, Hipermatrices).

• Operadores lógicos

Operador lógico Descripción


& AND
| OR
~ NOT

Ing. Dennys Cortez Alvarez.


19/09/21 ESPOL-FIEC. 56
Arreglos (Vectores,
Matrices, Hipermatrices).
• Los operadores lógicos proveen una vía para
• combinar o negar expresiones relacionales.
• A=1:9;
• tf = A > 4
• tf =
• 000011111
• tf = ~(A>4)
• tf =
• 111100000
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 57
Arreglos (Vectores,
Matrices, Hipermatrices).

• A=1:9;

• tf= (A>2)&(A<6)
• tf =
• 001110000

Ing. Dennys Cortez Alvarez.


19/09/21 ESPOL-FIEC. 58
Arreglos (Vectores,
Matrices, Hipermatrices).

• En ocasiones es conveniente conocer


los índices de los elementos de un
arreglo que satisfacen alguna
expresión relacional. El comando find
cumple esa función. Halla los índices de
los términos que no son nulos

Ing. Dennys Cortez Alvarez.


19/09/21 ESPOL-FIEC. 59
Arreglos (Vectores,
Matrices, Hipermatrices).

• x =-3:3
• x=
• -3 –2 –1 0 1 2 3
• h = find(x)
• h=
• 123567
• L = find(x>0)
• L =
• 567
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 60
Arreglos (Vectores,
Matrices, Hipermatrices).
• Uso de la variable eps

• x =(-3:3)/3;
• x=
• -1.0000 -0.6667 -0.3333 0.0000 0.33330.6667 1.0000

• y = sin(x)./x
• Warning: divide by zero
• y =
• 0.8415 0.9276 0.9816 NaN 0.9816 0.9276 0.8415
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 61
Arreglos (Vectores,
Matrices, Hipermatrices).
• Para eliminar dicha dificultad, se agrega eps a x

• x= x +(x==0)*eps;

• y = sin(x)./x

• y=
• 0.8415 0.9276 0.9816 1.0000 0.9816 0.9276 0.8415
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 62
Arreglos (Vectores,
Matrices, Hipermatrices).

• Hipermatrices (nxmxl)

• D=rand(2,3,4)

• Si deseamos ingresar una de (3x3x3)


• E(:,:,1)=[1 2 3;1 2 3;1 2 3]
• E(:,:,2)=[1 2 3;1 2 3;1 2 3]
• E(:,:,3)=[1 2 3;1 2 3;1 2 3]
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 63
Arreglos (Vectores,
Matrices, Hipermatrices).

• Ejercicio 4.1.
• En un examen las notas obtenidas son las
siguientes:
• notas = [60 75 72 72 78 67 80 63 75 90 89 …
43 59 99 82 12 100]
• Realice un programa que determine el número de
alumnos con notas menores que 60 puntos, el
número de alumnos con notas entre 60 puntos y 89
puntos y los alumnos con notas mayor o igual 90
puntos.

Ing. Dennys Cortez Alvarez.


19/09/21 ESPOL-FIEC. 64
Arreglos (Vectores,
Matrices, Hipermatrices).

• Cadenas de caracteres

• En MATLAB las variables texto se denominan


cadenas de caracteres o simplemente
cadenas.
• Las cadenas de caracteres en MATLAB son
arreglos de valores ASCII. La cadena de
caracteres hay que encerrarla entre
apóstrofes
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 65
Arreglos (Vectores,
Matrices, Hipermatrices).

• Sea
• t= ‘Esta es una cadena de caracteres’
• t=
• Esta es una cadena de caracteres

• Cada caracter en una cadena es un elemento


en el arreglo y cada elemento ocupa 2 bytes

Ing. Dennys Cortez Alvarez.


19/09/21 ESPOL-FIEC. 66
Arreglos (Vectores,
Matrices, Hipermatrices).
• Para ver la representación en código ASCII de cada
• caracter de la cadena se utiliza el comando double.
• Sea double(t)

• Columns 1 through 8
• 69 115 116 97 32 101 115 32
• Columns 9 through 16
• 117 110 97 32 99 97 100 101
• Columns 17 through 24
• 110 97 32 100 101 32 99 97
• Columns 25 through 32
• 114 97 99 116 101 114 101 115
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 67
Arreglos (Vectores,
Matrices, Hipermatrices).

• Como las cadenas son arreglos numéricos


con atributos especiales, con ellos se
pueden utilizar todas las herramientas para
el trabajo con arreglos, sea
• u = t(20:32)
• u=
• de caracteres

Ing. Dennys Cortez Alvarez.


19/09/21 ESPOL-FIEC. 68
Arreglos (Vectores,
Matrices, Hipermatrices).
• Conversión de cadenas

• double Convierte cadenas al código ASCII

• str2num Convierte cadenas a números

• num2str Convierte números a cadenas

• bin2dec Convierte cadena binaria a decimal entero

• dec2bin Convierte número decimal a cadena binaria


Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 69
Arreglos (Vectores,
Matrices, Hipermatrices).
• Las cadenas como las matrices, pueden tener
• múltiples filas, pero cada fila tiene que tener
• el mismo número de columnas.
• r= [‘Una cadena de caracteres con’
• ‘mas de una fila debe tener ‘
• ‘igual numero de columnas ‘]
• Note que se agregaron espacios en blanco
• para completar el número de columnas. Si
• eso no se hace, en la pantalla aparece error.
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 70
Arreglos (Vectores,
Matrices, Hipermatrices).
• En ocasiones es conveniente colocar un resultado
• numérico dentro de una cadena, sea
• radio = 2.5 ; % metros
• área = pi*(radio)^2; % metros cuadrados

• t = [ ‘Un circulo de radio ‘ num2str(radio) ...


• ‘ tiene un área de ‘ num2str(área) ‘.’];

• disp(t)
• Un circulo de radio 2.5 tiene un área de 19.63.
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 71
Arreglos (Vectores,
Matrices, Hipermatrices).
• Funciones de cadenas

• blanks(n) Retorna una cadena de n espacios


en blanco
• eval(string) Evalúa una cadena como un
comando MATLAB
• findstr(s1,s2) Busca una cadena dentro de otra
• ischar(s) Verdadero si la entrada es una
cadena
• lower(s) Cambia la cadena a minúscula
• strncmp(s1,s2,n) Verdadero si los n primeros
caracteres son idénticos.
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 72
Arreglos (Vectores,
Matrices, Hipermatrices).
• Ejemplos

• b = ‘Juan fue a jugar con su hijo’

• findstr(b,’ ‘) halla la posición de los espacios


• ans =
• 5 9 11 17 21 24

• findstr(b,’j’) halla la letra j

• ans =
• 12 27
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 73
Arreglos (Vectores,
Matrices, Hipermatrices).

• Para eliminar la dificultad, con la cadena, se


• utilizan arreglos de celdas.

• Un arreglo de celdas, es un tipo de dato que


permite que usted nombre y manipule un
grupo de datos de diferentes tamaños y
tipos.

Ing. Dennys Cortez Alvarez.


19/09/21 ESPOL-FIEC. 74
Arreglos (Vectores,
Matrices, Hipermatrices).
• Por ejemplo:
• C = {‘como’;’entonces’;’mas tarde’}
• C=
• ‘como’
• ‘entonces’
• ‘ mas tarde’
• Note que para definir el arreglo de celdas se
• utilizó llaves. Cada fila tiene diferente número
• de caracteres
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 75
Arreglos (Vectores,
Matrices, Hipermatrices).
• Los arreglos de celdas se direccionan de la
• misma manera que los arreglos.

• C(2:3)
• ans =
• ‘entonces’
• ‘mas tarde’

Ing. Dennys Cortez Alvarez.


19/09/21 ESPOL-FIEC. 76
Arreglos (Vectores,
Matrices, Hipermatrices).
• Como cualquier tipo de arreglo, los arreglos de
celdas se pueden construir asignando datos a cada
celda individual. Sea

• A(1,1)={[1 2 3;4 5 6;7 8 9]};


• A(1,2)={2+ 3i};
• A(2,1)={‘Una cadena texto’};
• A(2,2)={12:-2:0};
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 77
Arreglos (Vectores,
Matrices, Hipermatrices).
• Cada elemento del arreglo se puede escribir también
así:

• A{1,1}=[1 2 3;4 5 6;7 8 9];

• Las llaves indican que es un elemento de celda.

Ing. Dennys Cortez Alvarez.


19/09/21 ESPOL-FIEC. 78
Arreglos (Vectores,
Matrices, Hipermatrices).
• Si se teclea A, en la pantalla de MATLAB
• aparece como se muestra y double indica
• doble precisión.

• A=
[3x3 double] [2.0000+ 3.0000i]
'Una cadena texto' [1x7 double]

Ing. Dennys Cortez Alvarez.


19/09/21 ESPOL-FIEC. 79
Arreglos (Vectores,
Matrices, Hipermatrices).
• Para mostrar el contenido de cada celda
• utilice el comando:
• celldisp(A)
• A{1,1} =

• 1 2 3
• 4 5 6
• 7 8 9

Ing. Dennys Cortez Alvarez.


19/09/21 ESPOL-FIEC. 80
Arreglos (Vectores,
Matrices, Hipermatrices).
• A{2,1} =
• Una cadena texto
• A{1,2} =
• 2.0000 + 3.0000i
• A{2,2} =

• 12 10 8 6 4 2 0

Ing. Dennys Cortez Alvarez.


19/09/21 ESPOL-FIEC. 81
SEMINARIO INTRODUCCIÓN A

MATLAB-SIMULINK.
• Programa
 Características generales de MatLab.
 Comandos básicos.
 Control de flujo de instrucciones.
 Funciones.
 Arreglos (Vectores, Matrices, Hipermatrices).
 Estructuras.
 Gráficos 2D, 3D.
 Programación en MatLab.

Ing. Dennys Cortez Alvarez.


19/09/21 ESPOL-FIEC. 83
ESTRUCTURAS.

• STRUCT Create or convert to structure array.

• S = STRUCT('field1',VALUES1,'field2',VALUES2,...)

• S=struct('Nombre',‘Dennys','Edad',37)

• S=

• Nombre: ‘Dennys'
• Edad: 37
Ing. Dennys Cortez Alvarez.
19/09/21 ESPOL-FIEC. 84
ESTRUCTURAS.

• Las estructuras pueden manejarse como arreglos:


• Ej: Si se desea ingresar una lista.

• T(1)=struct('Nombre',‘Dennys','Edad',37)
• T(2)=struct('Nombre',‘Johanna','Edad',27)
• T(3)=struct('Nombre',‘Rina','Edad',28)

Ing. Dennys Cortez Alvarez.


19/09/21 ESPOL-FIEC. 85
ESTRUCTURAS.

• T=
• Nombre: ‘Dennys'
• Edad: 37
• T=
• 1x2 struct array with fields:
• Nombre
• Edad
• T=
• 1x3 struct array with fields:
• Nombre
• Edad

Ing. Dennys Cortez Alvarez.


19/09/21 ESPOL-FIEC. 86
SEMINARIO INTRODUCCIÓN A

MATLAB-SIMULINK.
• Programa
 Características generales de MatLab.
 Comandos básicos.
 Control de flujo de instrucciones.
 Funciones.
 Arreglos (Vectores, Matrices, Hipermatrices).
 Estructuras.
 Gráficos 2D, 3D.
 Programación en MatLab.

Ing. Dennys Cortez Alvarez.


19/09/21 ESPOL-FIEC. 87

También podría gustarte