Sei sulla pagina 1di 90

SEMINARIO INTRODUCCIN A

MATLAB-SIMULINK.

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

SEMINARIO INTRODUCCIN A
MATLAB-SIMULINK.
EFRN VINICIO HERRERA MUENTES.

eherrera@espol.edu.ec eherrera@fiec.espol.edu.ec

ESCUELA SUPERIOR POLITCNICA DEL

14/12/2014

LITORAL.
FACULTAD DE INGENIERA ELCTRICA Y
COMPUTACIN.
Guayaquil Ecuador.
Noviembre.
2012
Ing. Efrn Herrera Muentes.
ESPOL-FIEC.

SEMINARIO INTRODUCCIN A
MATLAB-SIMULINK.

Programa

Caractersticas generales de MatLab.


Comandos bsicos.
Control de flujo de instrucciones.
Funciones.
Arreglos (Vectores, Matrices, Hipermatrices).
Estructuras.
Grficos 2D, 3D.
Programacin en MatLab.

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

Arreglos (Vectores,
Matrices, Hipermatrices).
Ej:Guardarlo como:
Deber_Clase#_efren_herrera_m#.m
Ej: Guardarlo como
Clase#_efren_herrera_m#.m

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

Arreglos (Vectores,
Matrices, Hipermatrices).
MATLAB trabaja esencialmente con matrices de nmeros

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. An as,
conviene saber que la matriz est guardada por columnas
y que nos podemos referir a un elemento empleando slo
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.

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

Arreglos (Vectores,
Matrices, Hipermatrices).
Ejercicio 4.
Realizar todas las instrucciones que
veremos de arreglos.

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

Arreglos (Vectores,
Matrices, Hipermatrices).
Creacin de un vector fila
x = [1 2 3 4];
Creacin de un vector columna
y = [1;2;3;4]
y= 1

4
14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

Arreglos (Vectores,
Matrices, Hipermatrices).
El vector anterior se pudo haber creado as:
y = x % el apstrofe implica trasponer la

fila
Bsqueda de un trmino especfico en el
vector, sea
x(2)
ans =
2

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

Arreglos (Vectores,
Matrices, Hipermatrices).
Programa de aplicacin de vectores:
Realizar un programa que me permita

ingresar N elementos de un vector fila.


Mostrar el vector.
Mostrar la suma de los elementos del
vector.
Mostrar el producto de los elementos
del vector.
14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

Arreglos (Vectores,
Matrices, Hipermatrices).
Tambin 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
14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

10

Arreglos (Vectores,
Matrices, Hipermatrices).
logspace(d1,d2,n)

Genera un arreglo logartmico de 10^d1 a 10^d2


con n puntos

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

w = logspace(-1,2)

Genera un arreglo logartmico de10^-1 a 10^2


con 50 puntos

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

11

Arreglos (Vectores,
Matrices, Hipermatrices).
Dimensin de un vector
Se utiliza el comando length

length(t)
ans =

11
14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

12

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
4
7

14/12/2014

2
5
8

3
6
9
Ing. Efrn Herrera Muentes.
ESPOL-FIEC.

13

Arreglos (Vectores,
Matrices, Hipermatrices).
Programa de aplicacin de matrices:
Realizar un programa que me permita

ingresar N, M elementos de una matriz.


Mostrar la matriz.
Mostrar la suma de los elementos de la
matriz.
Mostrar el producto de los elementos
de la matriz.
14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

14

Arreglos (Vectores,
Matrices, Hipermatrices).
Restar una constante a una matriz,
trmino a trmino
z =g 2
z=

-1 0 1

234

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

15

Arreglos (Vectores,
Matrices, Hipermatrices).
Multiplicar una matriz por una

constante y restarle al resultado una


constante

y=

135

7 9 11
14/12/2014

y = 2*g -1

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

16

Arreglos (Vectores,
Matrices, Hipermatrices).
Multiplicacin de matrices trmino a trmino

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
14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

17

Arreglos (Vectores,
Matrices, Hipermatrices).
Si se escribe
g*x
da error, pues no se da la
condicin para la multiplicacin de
matrices, ya que ambas matrices son
de dimensin 2x3
Si se escribe
g*x Si sera vlida la multiplicacin
matricial
14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

18

Arreglos (Vectores,
Matrices, Hipermatrices).
Sea el caso de la divisin trmino a trmino
x = [1 4 5;3 1 6] y g = [1 2 3;4 5 6]

g./x

divisin por la derecha

ans=

1.0000 0.5000 0.6000

1.3333 5.0000 1.0000

g.\x divisin por la izquierda


ans =

1.0000 2.0000 1.6667

0.7500 0.2000 1.0000


14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

19

Arreglos (Vectores,
Matrices, Hipermatrices).
Exponenciacin trmino a trmino

ans=

1 4 9

16 25 36
ans =

2 4 8

16 32 64
14/12/2014

g.^2

2.^g

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

20

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

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

21

Arreglos (Vectores,
Matrices, Hipermatrices).
Para que se mantenga el signo en la

transpuesta
se debe poner un punto antes del apstrofo
d =
1.0000 + 1.0000i 2.0000 + 2.0000i

f = d.

f=

1.0000 + 1.0000i

2.0000 + 2.0000i
14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

22

Arreglos (Vectores,
Matrices, Hipermatrices).
Arreglo de unos y ceros

ones(2)

ans =

1 1

1 1

zeros(2,3)
ans =

000

000
14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

23

Arreglos (Vectores,
Matrices, Hipermatrices).
Dimensin de una matriz

Sea a = [1 4 7; 3 5 8]

a=

147

358
Con el comando size(a) se obtiene su dimensin

size(a)

ans =

2 3
14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

24

Arreglos (Vectores,
Matrices, Hipermatrices).
ones(size(a))
ans =

111

111

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

25

Arreglos (Vectores,
Matrices, Hipermatrices).
Manipulacin de arreglos
a = [1 4 7;3 5 8];

Sea a(2,2) = 0
a=

147
308

a(:,1) = 4

ans=

447

408
14/12/2014

% anular un trmino

% Obligar a los trminos de la columna 1


% a que valgan 4

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

26

Arreglos (Vectores,
Matrices, Hipermatrices).
a(:,3)
ans =

14/12/2014

% Buscar los trminos


% de la columna 3

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

27

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
14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

28

Arreglos (Vectores,
Matrices, Hipermatrices).
B(:,2) = [ ]
Eliminar una columna
B=

1 3

4 6

7 9
Se deben eliminar filas y/o columnas
completas

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

29

Arreglos (Vectores,
Matrices, Hipermatrices).
D = B(:)
D=

% ordena columna tras columna

1
4
7
3
6
9

F= D.

% transponer

F=

147369
14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

30

Arreglos (Vectores,
Matrices, Hipermatrices).
Comparacin 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 dimensin y trminos


%idnticos.

ans =

14/12/2014

0
Ing. Efrn Herrera Muentes.
ESPOL-FIEC.

31

Arreglos (Vectores,
Matrices, Hipermatrices).
ismember identifica trminos de la
primera matriz que no estn en la
segunda.

ismember(A,B)
ans =

14/12/2014

1
1
1

1
1
0

1
1
1
Ing. Efrn Herrera Muentes.
ESPOL-FIEC.

32

Arreglos (Vectores,
Matrices, Hipermatrices).
Programa de aplicacin de matrices y
operadores especiales:

Realizar un programa que me permita ingresar una

matriz cuadrada.
Mostrar la matriz.
Mostrar la matriz haciendo ceros los elementos
debajo de la diagonal secundaria.
Mostrar la matriz haciendo ceros los elementos
arriba de la diagonal principal.

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

33

Arreglos (Vectores,
Matrices, Hipermatrices).
Conjunto de ecuaciones lineales
1 2 3 x1 366
4 5 6 x 804

7 8 0 x3 351

Ax = b
1

xA b
14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

34

Arreglos (Vectores,
Matrices, Hipermatrices).
Para resolver dicha ecuacin 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
14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

35

Arreglos (Vectores,
Matrices, Hipermatrices).
Cuando el nmero de ecuaciones es

diferente al nmero de incgnitas no


existe solucin nica.
Sea el caso de mas ecuaciones que
incgnitas, el operador de divisin
automticamente halla la solucin que
minimiza el error cuadrtico en
Ax b = 0
14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

36

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

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

37

Arreglos (Vectores,
Matrices, Hipermatrices).

Cuando hay menos ecuaciones que incgnitas,


existen infinitas soluciones. MATLAB da dos
soluciones, una con el nmero mximo de
ceros y otra con la norma mnima

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


b = [366;804;351];

x = A\b

x=

-165.9000

99.0000

168.0000

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

38

Arreglos (Vectores,
Matrices, Hipermatrices).
Solucin con norma mnima
xn = pinv(A)*b

xn=

30.8182

-168.9818

99.0000

159.0545
norma(xn) = 254,173
norma(x) = 256.2200
14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

39

Arreglos (Vectores,
Matrices, Hipermatrices).
Funciones matriciales

det(A)
Determinante de A
[v,d]=eig(A)
Vectores y races de A
inv(A)
Inversa de A
poly(A)
Polinomio caracterstico de A
polyvalm(p,A) Evala el polinomio p con argumento
matricial
trace(A)
Suma de los elemento de la diagonal

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

40

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

Su representacin mediante MATLAB es:

p=[1 -12 0 25 116]

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

41

Arreglos (Vectores,
Matrices, Hipermatrices).
Para obtener las races 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 convencin de que los polinomios
son vectores filas y las races son vectores columnas
14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

42

Arreglos (Vectores,
Matrices, Hipermatrices).
Teniendo las races 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 comn que se presenten
coeficientes con valores cercanos a cero. Ello se resuelve
mediante el comando

pp(abs(pp)<1e-12)=0
14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

43

Arreglos (Vectores,
Matrices, Hipermatrices).
Multiplicacin de polinomios

Se realiza mediante el comando conv.


Sean los siguientes polinomios
a ( x) x 3 2 x 2 3x 4
b( x) x3 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
14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

44

Arreglos (Vectores,
Matrices, Hipermatrices).

Suma de polinomios
MATLAB no suministra comandos para la
realizacin 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

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

45

Arreglos (Vectores,
Matrices, Hipermatrices).
Si los polinomios no son del mismo orden o
dimensin, 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

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

46

Arreglos (Vectores,
Matrices, Hipermatrices).
Divisin 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

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

47

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
14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

48

Arreglos (Vectores,
Matrices, Hipermatrices).
Evaluacin de un polinomio

Para evaluar los polinomios se utiliza el


comando polyval
3
2
Sea el polinomio
p ( x) x 4 x 7 x 10
Se desea evaluarlo para

1 x 3
14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

49

Arreglos (Vectores,
Matrices, Hipermatrices).
x= linspace(-1,3);

p = [1 4 7 10];
v = polyval(p,x);

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

50

Arreglos (Vectores,
Matrices, Hipermatrices).
Polinomios racionales

n( x) n1 x m n2 x m1 ... nm1

d ( x) d1 x n d2 x n1 ... dn1

En MATLAB esta funcin es considerada como


dos polinomios independientes. Sea
n = [1 10 100];
d = [1 10 100 0];
La derivada de esta relacin se obtiene as:

[nd,dd] = polyder(n,d)
nd = -1 20 100 2000 10000
dd = 1 20 300 2000 10000 0 0
14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

51

Arreglos (Vectores,
Matrices, Hipermatrices).
Clculo del residuo
Para descomponer en fracciones parciales

una una funcin se utiliza el comando residue

[r,p,k]=residue(n,d)

donde
r : coeficiente de la expansin
p: polos de la funcin
k: el trmino directo

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

52

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


14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

53

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

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

54

Arreglos (Vectores,
Matrices, Hipermatrices).
Operadores relacionales y lgicos
MATLAB considera, que un nmero no nulo es
verdadero y cuando es cero que es falso, para las

entradas a las expresiones lgicas y relacionales.


Las salidas de los expresiones lgicas 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
tamao o comparar un arreglo con un escalar.

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

55

Arreglos (Vectores,
Matrices, Hipermatrices).
Operadores relacionales

Operador
<
<=
>
>=
==
~=

14/12/2014

descripcin
menor que
menor o igual que
mayor que
mayor o igual que
igual a
no igual a
Ing. Efrn Herrera Muentes.
ESPOL-FIEC.

56

Arreglos (Vectores,
Matrices, Hipermatrices).
A = 1:9, B = 9-A
A=

123456789
B=

876543210
tf = A > 4
tf =

000011111
14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

57

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 operacin a


una variable.

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

58

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 lgicas son

arreglos de unos y ceros, pueden ser utilizadas en


operaciones matemticas

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

59

Arreglos (Vectores,
Matrices, Hipermatrices).
Operadores lgicos
Operador lgico Descripcin
&
AND
|
OR
~
NOT

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

60

Arreglos (Vectores,
Matrices, Hipermatrices).

Los operadores lgicos proveen una va para


combinar o negar expresiones relacionales.
A=1:9;
tf = A > 4
tf =
000011111
tf = ~(A>4)
tf =
111100000

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

61

Arreglos (Vectores,
Matrices, Hipermatrices).
A=1:9;
tf= (A>2)&(A<6)
tf =

001110000

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

62

Arreglos (Vectores,
Matrices, Hipermatrices).
En ocasiones es conveniente conocer

los ndices de los elementos de un


arreglo
que
satisfacen
alguna
expresin relacional. El comando find
cumple esa funcin. Halla los ndices de
los trminos que no son nulos

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

63

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
14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

64

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


14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

65

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

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

66

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]

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

67

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 nmero
alumnos con notas menores que 60 puntos,
nmero de alumnos con notas entre 60 puntos y
puntos y los alumnos con notas mayor o igual
puntos.

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

de
el
89
90

68

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
apstrofes
14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

69

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

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

70

Arreglos (Vectores,
Matrices, Hipermatrices).
Para ver la representacin en cdigo 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

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

71

Arreglos (Vectores,
Matrices, Hipermatrices).
Como las cadenas son arreglos numricos

con atributos especiales, con ellos se


pueden utilizar todas las herramientas para
el trabajo con arreglos, sea

u = t(20:32)

u=
de caracteres
14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

72

Arreglos (Vectores,
Matrices, Hipermatrices).
Conversin de cadenas

double

Convierte cadenas al cdigo ASCII

str2num
num2str

Convierte cadenas a nmeros

Convierte nmeros a cadenas

bin2dec

Convierte cadena binaria a decimal entero

dec2bin

Convierte nmero decimal a cadena binaria

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

73

Arreglos (Vectores,
Matrices, Hipermatrices).
Las cadenas como las matrices, pueden tener
mltiples filas, pero cada fila tiene que tener
el mismo nmero 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 nmero de columnas. Si
eso no se hace, en la pantalla aparece error.
14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

74

Arreglos (Vectores,
Matrices, Hipermatrices).

En ocasiones es conveniente colocar un resultado


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


14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

75

Arreglos (Vectores,
Matrices, Hipermatrices).
Funciones de cadenas

blanks(n)

Retorna una cadena de n espacios


en blanco
eval(string)
Evala 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 minscula
strncmp(s1,s2,n) Verdadero si los n primeros
caracteres son idnticos.

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

76

Arreglos (Vectores,
Matrices, Hipermatrices).
Ejemplos

b = Juan fue a jugar con su hijo


findstr(b, )

halla la posicin de los espacios

ans =

5 9 11 17 21 24

findstr(b,j)

halla la letra j

ans =

12 27
14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

77

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 tamaos y
tipos.

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

78

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 nmero
de caracteres

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

79

Arreglos (Vectores,
Matrices, Hipermatrices).
Los arreglos de celdas se direccionan de la
misma manera que los arreglos.

C(2:3)

ans =

entonces

mas tarde

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

80

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

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

81

Arreglos (Vectores,
Matrices, Hipermatrices).
Cada elemento del arreglo se puede escribir tambin
as:

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


Las llaves indican que es un elemento de celda.

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

82

Arreglos (Vectores,
Matrices, Hipermatrices).
Si se teclea A, en la pantalla de MATLAB
aparece como se muestra y double indica
doble precisin.
A=
[3x3 double] [2.0000+ 3.0000i]
'Una cadena texto'
[1x7 double]

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

83

Arreglos (Vectores,
Matrices, Hipermatrices).
Para mostrar el contenido de cada celda
utilice el comando:

celldisp(A)
A{1,1} =

1 2

4 5

7 8

14/12/2014

3
6
9
Ing. Efrn Herrera Muentes.
ESPOL-FIEC.

84

Arreglos (Vectores,
Matrices, Hipermatrices).

A{2,1} =
Una cadena texto
A{1,2} =
2.0000 + 3.0000i
A{2,2} =
12

14/12/2014

10

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

85

SEMINARIO INTRODUCCIN A
MATLAB-SIMULINK.

Programa

Caractersticas generales de MatLab.


Comandos bsicos.
Control de flujo de instrucciones.
Funciones.
Arreglos (Vectores, Matrices, Hipermatrices).
Estructuras.
Grficos 2D, 3D.
Programacin en MatLab.

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

87

ESTRUCTURAS.
STRUCT Create or convert to structure array.

S = STRUCT('field1',VALUES1,'field2',VALUES2,...)
S=struct('Nombre','Efrn','Edad',38)

S=

Nombre: 'Efrn'
Edad: 38

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

88

ESTRUCTURAS.
Las estructuras pueden manejarse como arreglos:
Ej: Si se desea ingresar una lista.

T(1)=struct('Nombre','Efren','Edad',38)
T(2)=struct('Nombre','Luis','Edad',11)
T(3)=struct('Nombre','Andre','Edad',9)

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

89

ESTRUCTURAS.

T=
Nombre: 'Efren'
Edad: 38
T=
1x2 struct array with fields:
Nombre
Edad
T=
1x3 struct array with fields:
Nombre
Edad

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

90

SEMINARIO INTRODUCCIN A
MATLAB-SIMULINK.

Programa

Caractersticas generales de MatLab.


Comandos bsicos.
Control de flujo de instrucciones.
Funciones.
Arreglos (Vectores, Matrices, Hipermatrices).
Estructuras.
Grficos 2D, 3D.
Programacin en MatLab.

14/12/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC.

91

Potrebbero piacerti anche