aula 1 comandos basicos

Post on 26-Jun-2015

498 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

11

Introducción al MATLABIntroducción al MATLAB

Ing. Rubén AcostaUniversidad Inca Garcilaso de la Vega

22

Contenido del Curso

1. Entorno de MATLAB

2. Comandos Básicos

3. Tratamiento de Escalares, Vectores y Matrices

4. Instrucciones de control: IF-FOR-WHILE

5. Ordenamiento de vectores y matrices

6. Lectura y escritura de archivos de audio

7. Lectura y escritura de archivos de imágenes

33

Comandos Comandos Básicos de Básicos de MATLABMATLAB

4

Entorno de MATLAB

MATLAB MATrix LABoratory

Programa basado en Matrices

Vectores y escalares también pueden ser considerados como matrices

Icono de MATLAB

5

6

Ventana de comando

Histórico de comandosRuta de trabajo

Definiendo una Matriz Los elementos de una filafila son separados por

“espacios” o “comas”

El final de cada filafila es indicado por un “punto y punto y comacoma”

La lista de los elementos de una matriz es delimitada por [ ]

7

8

Definiendo una Matriz Escalar >> 25 Matriz 1x1

Vector Fila >> [3 -4 6] Matriz 1x3

Vector Columna >> [5; 10;-3; 6] Matriz 4x1

Matriz >> [2 4; 5 -8; 2 0] Matriz 3x24 1

5

10

3

6

3 2

2 4

5 8

2 0

Definiendo una Matriz

9

Comandos Básicos

10

sumsumSuma de los elementos de cada columna de una matriz

11

2 4

5 8

2 0

( ) [9 4]

A

sum A

Transpuesta ( ’’ )

Transpuesta de una matriz

12

5

10

3

6

' 5 10 3 6

A

A

AA transpuesta

diagdiag Extrae la diagonal de uma matriz cuadrada

13

magic

A = magic(4)ans = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1

14

fliplrfliplr Espejo HorizontalEspejo horizontal de una matriz

>> A

A =

16 3 2 13

5 10 11 8

9 6 7 12

4 15 14 1

fliplrfliplr Espejo Horizontal

>> fliplr(A)

A =

13 2 3 16

8 11 10 5

12 7 6 9

1 14 15 4

flipudflipud Espejo VerticalEspejo vertical de una matriz

>> A

A =

16 3 2 13

5 10 11 8

9 6 7 12

4 15 14 1

flipudflipud Espejo Vertical

>> flipud(A)

A =

4 15 14 1

9 6 7 12

5 10 11 8

16 3 2 13

19

Suma de MatricesSuma de Matrices

2 4 4 14 2 18

5 8 1 8 6 0

2 0 3 10 1 10

Indexación de Matrizes

Matriz Bidimensional: A(i,j)A(i,j) es el elemento de la i-ésima fila, j-ésima columna

A = 16 3 2 13

5 10 11 8

9 6 7 12

4 15 14 1

A(2,3) = 11

Indexación de Matrizes

Suma de los Elementos de la 2a fila:

>> A(2,1) + A(2,2) + A(2,3) + A(2,4)

ans =

34

Redimensionamiento Automático

Para la Matriz

A = 16 3 2 13

5 10 11 8

9 6 7 12

4 15 14 1

Redimensionamiento Automático

>> X = A;

>> X(5,5) = 29

X =

16 3 2 13 0

5 10 11 8 0

9 6 7 12 0

4 15 14 1 0

0 0 0 0 29

El operador ‘:’ (dos puntos)

>> 1:10

ans =

1 2 3 4 5 6 7 8 9 10

>> 1:3:27

ans =

1 4 7 10 13 16 19 22 25

El operador ‘:’ (dos puntos)

>> 60:-7:0

ans =

60 53 46 39 32 25 18 11 4

>> 0:pi/4:pi

ans =

0 0.7854 1.5708 2.3562 3.1416

El operador ‘:’ y Matrices

A(1:m, n)A(1:m, n): primeros mm elementos de la nn-ésima columnacolumna

A(:, n)A(:, n): todos los elementos de la nn-ésima columnacolumna

A(:, end)A(:, end): todos los elementos de la últimaúltima columnacolumna

A(m, 1:n)A(m, 1:n): primeros nn elementos de la mm-ésima filafila

A(m, :)A(m, :): todos los elementos de la mm-ésima filafila

A(end,:)A(end,:): todos los elementos de la últimaúltima filafila

El operador “:” (dos puntos) Matriz Bidimensional: A(i,j) es el elementos de la i-

esima fila, j-esima columna

A(1,4) = 13 A(3,2) = 6

27

El operador ‘:’ y Matrices

>> A(1:4,1)

ans =

16

5

9

4

>> A(:,1)

ans =

16

5

9

4

O

O Operador ‘:’ y Matrizes

>> A(:,4)

ans =

13

8

12

1

>> A(:,end)

ans =

13

8

12

1

O

Funciones de Creación de Matrices

zeroszeros: matriz de ceros onesones: matriz de unos randrand: matriz de números aleatórios

con distribución uniforme randnrandn: matriz de números aleatórios

con distribución normal (Gaussiana)

Funciones de Creación de Matrices

>> Z = zeros(3,5)

Z =

0 0 0 0 0

0 0 0 0 0

0 0 0 0 0

Filas Columna

Funciones de Creación de Matrices

>> Q = 4*ones(5,5)

Q =

4 4 4 4 4

4 4 4 4 4

4 4 4 4 4

4 4 4 4 4

4 4 4 4 4

Funciones de Creación de Matrices

>> N = rand(2,4)

N =

0.95013 0.60684 0.8913 0.45647

0.23114 0.48598 0.7621 0.018504

Exclusión de Filas o Columnas

>> X = A;

>> X(:,2) = []

X =

16 2 13

5 11 8

9 7 12

4 14 1

Algebra Lineal para Matrices

++ : suma - - : substracción / / : división de matrices * * : multiplicación de matrices ^ ^ : potencia de una matriz inv inv : inversa de una matriz

Operadores Aritméticos para Matrices

++ : suma -- : substracción ././ : división elemento a elemento .*.* : multiplicación elemento a

elemento .^ .^ : potencia elemento a elemento

Aritmética x Algebra Lineal

>> A = magic(4);

>> B = A+A

B = 32 4 6 26

10 22 20 16

18 14 12 24

8 28 30 2

>> A = magic(4);

>> C = A-A

C = 0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

Aritmética x Algebra Lineal

>> A = magic(4);

>> B = A./A

B = 1 1 1 1

1 1 1 1

1 1 1 1

1 1 1 1

>> A = magic(4);

>> C = A/AWarning: Matrix is close to singular

or badly scaled. Results may be inaccurate. RCOND = 9.796086e-018.

C = 1 0 0 0

-0.67 -1 2 0.67

-0.04 -0.13 1.13 0.04

0 0 0 1

Aritmética x Algebra Lineal

>> A = magic(4);

>> B = A.*A

B =

256 4 9 169 25 121 100 64

81 49 36 144

16 196 225 1

>> A = magic(4);

>> C = A*A

C = 345 257 281 273

257 313 305 281

281 305 313 257

273 281 257 345

Aritmética x Algebra Lineal

>> A = magic(4);

>> B = A.^2

B =

256 4 9 169 25 121 100 64

81 49 36 144

16 196 225 1

>> A = magic(4);

>> C = A^2

C = 345 257 281 273

257 313 305 281

281 305 313 257

273 281 257 345

Comando findPara encontrar elementos de una matriz

A = [9 -2 4 5 -5 0 3 4]

>>x =find(A==4)

x = 3 8

>>A(x)ans= 4 4

41

Condición lógica

Indices de los elementos con valor igual a 4

Comando findPara encontrar elementos de una matriz

A = 1 14 5 7 1 14 2 10 3

>>x =find(A==14)x = 4 8>>A(x)ans= 14 14

42

Condición lógica

Indices de los elementos con valor igual a 14

Comando findPara encontrar elementos de una matriz

A = 1 14 5 7 1 14 2 10 3

>>x =find(A>2 & A<10)x = 2 7 9>>A(x)ans= 7 5 3

43

Condición lógica

Indices de los elementos con valor mayor que 2 y menor que 10

Comando round/ ceil / floorUsado para redondeo Redondeoround(1.2)=1round(1.5)=2

Redondeo para arribaceil(1.2) = 2ceil(1.8) = 2

Redondeo para abajofloor(1.2) = 1floor(1.8) = 1

44

Comando abs/ sqrt/ log/ log2/ log10 Valor absoluto abs(-2.3) = 2.3

Raiz cuadrada sqrt(4) = 2

Logaritmo neperiano base “e” log(16) = 2.077

Logaritmo en base 2 log2(16) = 4

Logaritmo en base 10 log10(100) = 2

45

Comando plot

x = 0:0.1:10; %variacion del eje xy = sin(x); %variacion del eje yplot(x,y) %Grafica x versus y

46

Comando plot

t = 0:0.1:10;y = sin(t);plot(t,y)gridtitle('onda seno')xlabel('eje x')ylabel('eje y')

47

Comando plot

t = 0:0.1:10;y1 = sin(t);y2 = cos(t)plot(t,y1,t,y2)gridtitle('onda seno y onda coseno')xlabel('eje x')ylabel('eje y')legend('seno', 'coseno')

48

Comando stem

t = 0:0.1:10;y = sin(t);stem(t,y1)gridtitle('onda seno')xlabel('eje x')ylabel('eje y')

49

Comando min / max

A = [2 -3 6 -8 3] [valor, indice] = min(A)valor = -8indice = 4

[valor, indice] = max(A)valor = 6indice = 3

50

Problema 1 Para la matriz A, Substituir los elementos de las filas 2 a 3

y columnas 1 a 2 por una matriz cuadrada B, de unos de orden 2

A = 3 -2 5 5 6 9 -3 5 10

B = 1 1 1 1

51

Problema 1

A =[3 -2 5; 5 6 9; -3 5 10]B = ones(2,2)A(2:3,1:2) = B

A = 3 -2 5 1 1 9 1 1 10

52

Problema 2 Determinar el indice de t, donde la función

y=t^2 es minima

t = -10:0.1:10;y = t.^2;plot(t,y)[valor, indice] = min(y)indice=101t(indice)= 0

53

Funciones m-file

54

Abrir un editor

Funciones m-file

55

Ventana de comando

Editor para generar programas con extensión *.m

56

Funciones m-file Para ejecutar el programa

1. Desde el editor presionar la tecla F52. Desde la ventana de comando, llamar al archivo ejemplo.m

57

Tecla:F5

Problema 3

Realizar un programa para construir una Matriz

A = [3 5; 9 1]B = [-2 3]C = [10; 15]D = 1

58

Funciones escritas por el usuario

59

Funciones escritas por el usuario

60

Uso de la función

Problema 4

Para la ecuación

t = 0:0.1:100;h = 60+2.13*t.^2 - 0.0013*t.^4+0.00003*t.^4.751

Realizar un programa para Graficar t vs h Determinar el valor de t, donde h es máximo Determinar el valor de t, donde h es cero

61

Problema 4

t = 0:0.1:100;h = 60 + 2.13*t.^2 - 0.0013*t.^4 + 0.00003*t.^4.751[valor, indice] = max(h)t(indice) z = find(h >= 0)t(z(end))

plot(t,h),grid

62

Problma 5 Generar 10000 números aleatorios, con

distribución Gaussiana, com valor medio 10 y desvio padrón 2

>> r = 10 + 2*randn(1,10000)>> hist(r)

63

top related