Sunteți pe pagina 1din 86

19/10/2014

Ing. Efrn Herrera Muentes.


ESPOL-FIEC. 1
SEMINARIO INTRODUCCIN A
MATLAB-SIMULINK.
19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 2
SEMINARIO INTRODUCCIN A
MATLAB-SIMULINK.

EFRN VINICIO HERRERA MUENTES.
eherrera@espol.edu.ec eherrera@fiec.espol.edu.ec

ESCUELA SUPERIOR POLITCNICA DEL
LITORAL.
FACULTAD DE INGENIERA ELCTRICA Y
COMPUTACIN.
Guayaquil Ecuador.
Marzo.
2014
19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 3
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.
19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 4
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.
19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 5
Arreglos (Vectores,
Matrices, Hipermatrices).
Ejercicio 4.
Ej: Guardarlo como (nombre_avmh.m)

Realizar todas las instrucciones que
veremos de arreglos.
19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 6
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
2
3
4
19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 7
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

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 8
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

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 9
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,50)
Genera un arreglo logartmico de10^-1 a 10^2
con 50 puntos

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 10
Arreglos (Vectores,
Matrices, Hipermatrices).

Dimensin de un vector

Se utiliza el comando length

length(t)
ans =
11

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 11
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

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 12
Arreglos (Vectores,
Matrices, Hipermatrices).

Restar una constante a una matriz,
trmino a trmino
z =g 2
z =
-1 0 1
2 3 4

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 13
Arreglos (Vectores,
Matrices, Hipermatrices).

Multiplicar una matriz por una
constante y restarle al resultado una
constante
y = 2*g -1
y =
1 3 5
7 9 11

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 14
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

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 15
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

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 16
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

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 17
Arreglos (Vectores,
Matrices, Hipermatrices).

Exponenciacin trmino a trmino
g.^2
ans=
1 4 9
16 25 36
2.^g
ans =
2 4 8
16 32 64

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 18
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 =
1 2
d = a + i*a
d =
1.0000 + 1.0000i 2.0000 + 2.0000i
e = d
e =
1.0000 1.0000i
2.0000 2.0000i

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 19
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

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 20
Arreglos (Vectores,
Matrices, Hipermatrices).

Arreglo de unos y ceros
ones(2)
ans =
1 1
1 1
zeros(2,3)
ans =
0 0 0
0 0 0

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 21
Arreglos (Vectores,
Matrices, Hipermatrices).

Dimensin de una matriz

Sea a = [1 4 7; 3 5 8]
a =
1 4 7
3 5 8
Con el comando size(a) se obtiene su dimensin
size(a)
ans =
2 3

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 22
Arreglos (Vectores,
Matrices, Hipermatrices).

ones(size(a))
ans =
1 1 1
1 1 1

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 23
Arreglos (Vectores,
Matrices, Hipermatrices).

Manipulacin de arreglos
a = [1 4 7;3 5 8];

Sea a(2,2) = 0 % anular un trmino
a =
1 4 7
3 0 8
a(:,1) = 4 % Obligar a los trminos de la columna 1
% a que valgan 4
ans=
4 4 7
4 0 8

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 24
Arreglos (Vectores,
Matrices, Hipermatrices).

a(:,3) % Buscar los trminos
% de la columna 3
ans =
7
8

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 25
Arreglos (Vectores,
Matrices, Hipermatrices).

Crear una matriz a partir de otra

B = [1 2 3;4 5 6;7 8 9]
B =
1 2 3
4 5 6
7 8 9
C=B(2:3,1:2)
C =
4 5
7 8
19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 26
Arreglos (Vectores,
Matrices, Hipermatrices).

B(:,2) = [ ] Eliminar una columna
B =
1 3
4 6
7 9
Se deben eliminar filas y/o columnas
completas

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 27
Arreglos (Vectores,
Matrices, Hipermatrices).

D = B(:) % ordena columna tras columna
D =
1
4
7
3
6
9
F= D. % transponer
F =
1 4 7 3 6 9

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 28
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 =
0


19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 29
Arreglos (Vectores,
Matrices, Hipermatrices).

ismember identifica trminos de la
primera matriz que no estn en la
segunda.

ismember(A,B)
ans =

1 1 1
1 1 1
1 0 1
19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 30
Arreglos (Vectores,
Matrices, Hipermatrices).

Conjunto de ecuaciones lineales




Ax = b


1
2
3
1 2 3 366
4 5 6 804
7 8 0 351
x
x
x
( ( (
( ( (
=
( ( (
( ( (

1
x A b

=
19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 31
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


19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 32
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

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 33
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

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 34
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 =
0
-165.9000
99.0000
168.0000

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 35
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

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 36
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

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 37
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:




Su representacin mediante MATLAB es:
p=[1 -12 0 25 116]

4 3
12 25 116 0 x x x + + =
19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 38
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
19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 39
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
19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 40
Arreglos (Vectores,
Matrices, Hipermatrices).

Multiplicacin de polinomios

Se realiza mediante el comando conv.
Sean los siguientes polinomios


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

3 2
3 2
( ) 2 3 4
( ) 4 9 16
a x x x x
b x x x x
= + + +
= + + +
19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 41
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

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 42
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

6 5 4 3 2
6 20 62 81 96 84 x x x x x x + + + + + +
19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 43
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=
1 2 3 4
y
r =
0 0 0 0 0 0 0
19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 44
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]

x
6
+ 6*x
5
+20*x
4
+48*x
3
+69*x
2
+72*x + 44

h = polyder(g)
h =
6 30 80 144 138 72
19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 45
Arreglos (Vectores,
Matrices, Hipermatrices).

Evaluacin de un polinomio

Para evaluar los polinomios se utiliza el
comando polyval
Sea el polinomio

Se desea evaluarlo para

3 2
( ) 4 7 10 p x x x x = +
1 3 x s s
19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 46
Arreglos (Vectores,
Matrices, Hipermatrices).

x= linspace(-1,3);

p = [1 4 7 10];

v = polyval(p,x);

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 47
Arreglos (Vectores,
Matrices, Hipermatrices).

Polinomios racionales



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

1
1 2 1
1
1 2 1
... ( )
( ) ...
m m
m
n n
n
n x n x n n x
d x d x d x d

+
+ + +
=
+ + +
19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 48
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

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 49
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

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 50
Arreglos (Vectores,
Matrices, Hipermatrices).

El resultado es:



Se puede volver al polinomio original mediante
[nn,dd] = residue(r,p,k)
nn= 1 10 100
dd= 1 10 100 0


( ) 1.1547 1.1547 1
( ) 5 8.6603 5 8.6603
n x i i
d x x i x i x
= +
+ + +
19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 51
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.

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 52
Arreglos (Vectores,
Matrices, Hipermatrices).

Operadores relacionales

Operador descripcin
< menor que
<= menor o igual que
> mayor que
>= mayor o igual que
== igual a
~= no igual a
19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 53
Arreglos (Vectores,
Matrices, Hipermatrices).

A = 1:9, B = 9-A
A =
1 2 3 4 5 6 7 8 9

B=
8 7 6 5 4 3 2 1 0
tf = A > 4
tf =
0 0 0 0 1 1 1 1 1

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 54
Arreglos (Vectores,
Matrices, Hipermatrices).

df = (A==B)
df =
0 0 0 0 0 0 0 0 0
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.

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 55
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

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 56
Arreglos (Vectores,
Matrices, Hipermatrices).

Operadores lgicos

Operador lgico Descripcin
& AND
| OR
~ NOT
19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 57
Arreglos (Vectores,
Matrices, Hipermatrices).

Los operadores lgicos proveen una va para
combinar o negar expresiones relacionales.
A=1:9;
tf = A > 4
tf =
0 0 0 0 1 1 1 1 1
tf = ~(A>4)
tf =
1 1 1 1 0 0 0 0 0

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 58
Arreglos (Vectores,
Matrices, Hipermatrices).

A=1:9;

tf= (A>2)&(A<6)
tf =
0 0 1 1 1 0 0 0 0

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 59
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

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 60
Arreglos (Vectores,
Matrices, Hipermatrices).

x =-3:3
x =
-3 2 1 0 1 2 3
h = find(x)
h =
1 2 3 5 6 7
L = find(x>0)
L =
5 6 7

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 61
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

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 62
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
19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 63
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]

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 64
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 de
alumnos con notas menores que 60 puntos, el
nmero de alumnos con notas entre 60 puntos y 89
puntos y los alumnos con notas mayor o igual 90
puntos.
19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 65
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

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 66
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

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 67
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

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 68
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

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 69
Arreglos (Vectores,
Matrices, Hipermatrices).

Conversin de cadenas

double Convierte cadenas al cdigo ASCII

str2num Convierte cadenas a nmeros

num2str Convierte nmeros a cadenas

bin2dec Convierte cadena binaria a decimal entero

dec2bin Convierte nmero decimal a cadena binaria
19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 70
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.

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 71
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.

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 72
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.

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 73
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

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 74
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.

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 75
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

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 76
Arreglos (Vectores,
Matrices, Hipermatrices).

Los arreglos de celdas se direccionan de la
misma manera que los arreglos.

C(2:3)
ans =
entonces
mas tarde


19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 77
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};

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 78
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.

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 79
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]

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 80
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

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 81
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

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 83
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.
19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 84
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
19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 85
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)

19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 86
ESTRUCTURAS.
T =
Nombre: 'Efren'
Edad: 38
T =
1x2 struct array with fields:
Nombre
Edad
T =
1x3 struct array with fields:
Nombre
Edad
19/10/2014
Ing. Efrn Herrera Muentes.
ESPOL-FIEC. 87
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.

S-ar putea să vă placă și