Seminario Matlab Simulink

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 86

SEMINARIO INTRODUCCIN A

MATLAB-SIMULINK.

14/01/2015

Ing. Pablo Mndez. UTN.

SEMINARIO INTRODUCCIN A
MATLAB-SIMULINK.
PABLO DANILO MNDEZ MAIGUA.
[email protected]

UNIVERSIDAD TCNICA DEL NORTE.


CIMANELE.
Ibarra Ecuador.
Octubre.
2013

14/01/2015

Ing. Pablo Mndez. UTN.

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/01/2015

Ing. Pablo Mndez. UTN.

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/01/2015

Ing. Pablo Mndez. UTN.

Arreglos (Vectores,
Matrices, Hipermatrices).
Ejercicio 4.
Ej: Guardarlo como (nombre_avmh.m)

Realizar todas las instrucciones que


veremos de arreglos.

14/01/2015

Ing. Pablo Mndez. UTN.

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/01/2015

Ing. Pablo Mndez. UTN.

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/01/2015

Ing. Pablo Mndez. UTN.

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/01/2015

Ing. Pablo Mndez. UTN.

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/01/2015

Ing. Pablo Mndez. UTN.

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

11
14/01/2015

Ing. Pablo Mndez. UTN.

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

14/01/2015

2
5
8

3
6
9
Ing. Pablo Mndez. UTN.

11

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

-1 0 1

234

14/01/2015

Ing. Pablo Mndez. UTN.

12

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

constante y restarle al resultado una


constante

y=

135

7 9 11
14/01/2015

y = 2*g -1

Ing. Pablo Mndez. UTN.

13

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/01/2015

Ing. Pablo Mndez. UTN.

14

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/01/2015

Ing. Pablo Mndez. UTN.

15

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/01/2015

Ing. Pablo Mndez. UTN.

16

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

1 4 9

16 25 36
ans =

2 4 8

16 32 64
14/01/2015

g.^2

2.^g

Ing. Pablo Mndez. UTN.

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

14/01/2015

Ing. Pablo Mndez. UTN.

18

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/01/2015

Ing. Pablo Mndez. UTN.

19

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

ones(2)

ans =

1 1

1 1

zeros(2,3)
ans =

000

000
14/01/2015

Ing. Pablo Mndez. UTN.

20

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/01/2015

Ing. Pablo Mndez. UTN.

21

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

111

111

14/01/2015

Ing. Pablo Mndez. UTN.

22

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/01/2015

% anular un trmino

% Obligar a los trminos de la columna 1


% a que valgan 4

Ing. Pablo Mndez. UTN.

23

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

14/01/2015

% Buscar los trminos


% de la columna 3

Ing. Pablo Mndez. UTN.

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
14/01/2015

Ing. Pablo Mndez. UTN.

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

14/01/2015

Ing. Pablo Mndez. UTN.

26

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

% ordena columna tras columna

1
4
7
3
6
9

F= D.

% transponer

F=

147369
14/01/2015

Ing. Pablo Mndez. UTN.

27

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/01/2015

0
Ing. Pablo Mndez. UTN.

28

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

ismember(A,B)
ans =

14/01/2015

1
1
1

1
1
0

1
1
1
Ing. Pablo Mndez. UTN.

29

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/01/2015

Ing. Pablo Mndez. UTN.

30

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/01/2015

Ing. Pablo Mndez. UTN.

31

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/01/2015

Ing. Pablo Mndez. UTN.

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

14/01/2015

Ing. Pablo Mndez. UTN.

33

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/01/2015

Ing. Pablo Mndez. UTN.

34

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/01/2015

Ing. Pablo Mndez. UTN.

35

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/01/2015

Ing. Pablo Mndez. UTN.

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 25x 116 0
4

Su representacin mediante MATLAB es:

p=[1 -12 0 25 116]

14/01/2015

Ing. Pablo Mndez. UTN.

37

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/01/2015

Ing. Pablo Mndez. UTN.

38

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/01/2015

Ing. Pablo Mndez. UTN.

39

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/01/2015

Ing. Pablo Mndez. UTN.

40

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/01/2015

Ing. Pablo Mndez. UTN.

41

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 6x 20x 62x 81x 96x 84


6

14/01/2015

Ing. Pablo Mndez. UTN.

42

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/01/2015

Ing. Pablo Mndez. UTN.

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
14/01/2015

Ing. Pablo Mndez. UTN.

44

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/01/2015

Ing. Pablo Mndez. UTN.

45

Arreglos (Vectores,
Matrices, Hipermatrices).
x= linspace(-1,3);
p = [1 4 7 10];
v = polyval(p,x);

14/01/2015

Ing. Pablo Mndez. UTN.

46

Arreglos (Vectores,
Matrices, Hipermatrices).
Polinomios racionales

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

d ( x) d1 x n d 2 x n 1 ... d n1

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/01/2015

Ing. Pablo Mndez. UTN.

47

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/01/2015

Ing. Pablo Mndez. UTN.

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


14/01/2015

Ing. Pablo Mndez. UTN.

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

14/01/2015

Ing. Pablo Mndez. UTN.

50

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/01/2015

Ing. Pablo Mndez. UTN.

51

Arreglos (Vectores,
Matrices, Hipermatrices).
Operadores relacionales

Operador
<
<=
>
>=
==
~=

14/01/2015

descripcin
menor que
menor o igual que
mayor que
mayor o igual que
igual a
no igual a

Ing. Pablo Mndez. UTN.

52

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

123456789

B=

876543210
tf = A > 4
tf =

000011111
14/01/2015

Ing. Pablo Mndez. UTN.

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


una variable.

14/01/2015

Ing. Pablo Mndez. UTN.

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

arreglos de unos y ceros, pueden ser utilizadas en


operaciones matemticas

14/01/2015

Ing. Pablo Mndez. UTN.

55

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

14/01/2015

Ing. Pablo Mndez. UTN.

56

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/01/2015

Ing. Pablo Mndez. UTN.

57

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

001110000

14/01/2015

Ing. Pablo Mndez. UTN.

58

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/01/2015

Ing. Pablo Mndez. UTN.

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
14/01/2015

Ing. Pablo Mndez. UTN.

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


14/01/2015

Ing. Pablo Mndez. UTN.

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

14/01/2015

Ing. Pablo Mndez. UTN.

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]

14/01/2015

Ing. Pablo Mndez. UTN.

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 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/01/2015

Ing. Pablo Mndez. UTN.

de
el
89
90

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
apstrofes
14/01/2015

Ing. Pablo Mndez. UTN.

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

14/01/2015

Ing. Pablo Mndez. UTN.

66

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/01/2015

Ing. Pablo Mndez. UTN.

67

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/01/2015

Ing. Pablo Mndez. UTN.

68

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/01/2015

Ing. Pablo Mndez. UTN.

69

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/01/2015

Ing. Pablo Mndez. UTN.

70

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/01/2015

Ing. Pablo Mndez. UTN.

71

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/01/2015

Ing. Pablo Mndez. UTN.

72

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/01/2015

Ing. Pablo Mndez. UTN.

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

14/01/2015

Ing. Pablo Mndez. UTN.

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

14/01/2015

Ing. Pablo Mndez. UTN.

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

14/01/2015

Ing. Pablo Mndez. UTN.

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

14/01/2015

Ing. Pablo Mndez. UTN.

77

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/01/2015

Ing. Pablo Mndez. UTN.

78

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/01/2015

Ing. Pablo Mndez. UTN.

79

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/01/2015

3
6
9

Ing. Pablo Mndez. UTN.

80

Arreglos (Vectores,
Matrices, Hipermatrices).

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

14/01/2015

10

Ing. Pablo Mndez. UTN.

81

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/01/2015

Ing. Pablo Mndez. UTN.

83

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/01/2015

Ing. Pablo Mndez. UTN.

84

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/01/2015

Ing. Pablo Mndez. UTN.

85

ESTRUCTURAS.

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

14/01/2015

Ing. Pablo Mndez. UTN.

86

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/01/2015

Ing. Pablo Mndez. UTN.

87

También podría gustarte