Documente Academic
Documente Profesional
Documente Cultură
=
(
(
(
=
(
(
(
=
33 9 0 10 2 3
15 5 7 15 1 33
35 0 11 12 0 1
99 8 25 19 7 10
25 11 9 21
10 13 7 6
5 9 4 3
9 8 7
6 5 4
3 2 1
C B A
En este caso, A es una matriz cuadrada 3x3, es decir, tres renglones y tres columnas, B
es una matriz 3x4 (tres renglones y cuatro columnas) y C es una matriz 4x6 (cuatro
renglones y seis columnas). En general una matriz mxn tiene m renglones y n
columnas, adems el producto de m por n nos d el tamao de la matriz (nmero de
elementos)
La matriz es creada asignando los elementos de la matriz a la variable. Para hacer esto
es necesario escribir los elementos rengln por rengln entre corchetes [ ]. Primero se
escribe el corchete abrir [, seguidamente se escribe la primer columna separando los
elementos por espacio o comas. Antes de escribir el siguiente rengln hay que poner un
punto y coma ( ; ) o pulsar enter. Por ltimo se pone el corchete cerrar ] al final del
ltimo rengln.
nombre_variable = [elementos del rengln 1;elementos del rengln
2;elementos de rengln 3;...;elementos del rengln n]
Los elementos de una matriz son nmeros o expresiones matemticas que pueden
incluir nmeros, variables predefinidas y funciones. Todos los renglones deben tener el
mismo nmero de elementos. Si un elemento es cero debe incluirse como tal. Si no se
cumple con esta condicin MatLab manda un mensaje de error.
Programacin Construccin de arreglos
Ing. Luis Lorenzo Jimnez Garca
36
Ejercicio de prctica 2.4
Introduce los datos de las matrices A, B y C dadas anteriormente:
>> % Los renglones de la matriz son separados por ;
>> A = [1 2 3; 4 5 6; 7 8 9]
A =
5 35 43
4 76 81
21 32 40
>> % Los renglones de la matriz son separados por salto de
>> % rengln.
>> B = [3 -4 9 5
6 7 13 10
21 -9 11 25]
B =
3 -4 9 5
6 7 13 10
21 -9 11 25
>> % Los renglones de la matriz son separados por ;
>> % y salto de rengln.
>> C = [-10 7 19 25 8 99;
1 0 12 11 0 35;
-33 1 15 7 5 15;
3 2 10 0 9 33]
C =
-10 7 19 25 8 99
1 0 12 11 0 35
Programacin Construccin de arreglos
Ing. Luis Lorenzo Jimnez Garca
37
-33 1 15 7 5 15
3 2 10 0 9 33
>> D=[1:2:11; 0:5:25; linspace(10,60,6); 67 2 43 68 4 13]
D =
1 3 5 7 9 11
0 5 10 15 20 25
10 20 30 40 50 60
67 2 43 68 4 13
En la matriz D,los dos primeros renglones fueron generados
como vectores usando la notacin para la creacin de
vectores con espaciamientos constantes, el tercer rengln
fue generado usando el comando linspace y el ltimo rengln
fue generado individualmente.
2.2.1 Algunos comandos utilizados para generar matrices.
Algunos de los principales comandos para generar y operar con diferentes tipos de
matrices se muestran en la Tabla 2.1 (The MathWorks, 2010):
Tabla 2.1 Principales funciones para operar con matrices
Funcin Descripcion
zeros (m) Crea una matriz m x m de ceros
zeros(m,n) Crea una matriz m x n de ceros
ones(m) Crea una matriz m x m de unos
ones(m,n) Crea una matriz m x n de unos
eye(n) Crea una matriz identidad n x n
eye(m,n) Crea la matriz m x n con unos en la diagonal principal y
ceros el resto de los elementos.
Programacin Construccin de arreglos
Ing. Luis Lorenzo Jimnez Garca
38
diag(A) Extrae la diagonal de la matriz A como vector columna.
Para cualquier vector A, crea una matriz cuadrada con A
como la diagonal principal
fliplr(A) Voltea la matriz A en su imagen especular de derecha a
izquierda.
flipud(A) Voltea la matriz A verticalmente
size(A) Calcula el orden (tamao) de la matriz A
magic(m)
Crea una matriz mgica m x m. Sus elementos son los
enteros desde 1 hasta n
2
con iguales sumas de renglones
y columnas
rand(m,n) Crea una matriz aleatoria uniforme de m x n
A Calcula la matriz transpuesta de A
rand(m,n) Genera una matriz aleatoria de mxn
Ejercicio de prctica 2.5
Ejecuta las siguientes funciones para generar y manipular matrices
>> % Genera una matriz con elementos nulos de 3x3
>> A = zeros(3)
A =
0 0 0
0 0 0
0 0 0
>> % Genera una matriz con elementos nulos de 3x4
>> A1 = zeros(3,4)
A1 =
0 0 0 0
0 0 0 0
Programacin Construccin de arreglos
Ing. Luis Lorenzo Jimnez Garca
39
0 0 0 0
>> % Genera una matriz unitaria de 3x3
>> C = ones(3)
C =
1 1 1
1 1 1
1 1 1
>> % Genera una matriz unitaria de 4x5
>> C1 = ones(4,5)
C1 =
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
>> % Genera una matriz identidad de orden 5
>> D = eye(5)
D =
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
>> % Genera una matriz con unos en la diagonal
>> % principal y ceros el resto
>> D1 = eye(5,4)
D1 =
1 0 0 0
0 1 0 0
Programacin Construccin de arreglos
Ing. Luis Lorenzo Jimnez Garca
40
0 0 1 0
0 0 0 1
0 0 0 0
>> % Genera una matriz aleatoria de 3x4
>> E = rand(3,4)
E =
0.9501 0.4860 0.4565 0.4447
0.2311 0.8913 0.0185 0.6154
0.6068 0.7621 0.8214 0.7919
>> A = [ 1 2 3; 4 5 6; 7 8 9]
A =
1 2 3
4 5 6
7 8 9
>> % Extrae la diagonal de una matriz A
>> diag(A)
ans =
1
5
9
>> % Voltea la matriz A en su imagen especular de
>> % derecha a izquierda
>> fliplr(A)
ans =
3 2 1
6 5 4
9 8 7
>> % Voltea la matriz A verticalmente
>> flipud(A)
ans =
7 8 9
4 5 6
Programacin Construccin de arreglos
Ing. Luis Lorenzo Jimnez Garca
41
1 2 3
>> % Crea una matriz mgica 3x3
>> magic(3)
ans =
8 1 6
3 5 7
4 9 2
2.3 Uso de los dos puntos (:) en la manipulacin de arreglos de una y
dos dimensiones
Los dos puntos se utilizan para acceder a un rango de elementos dentro de un vector o
una matriz. En forma resumida tenemos:
Para vectores:
vec(:) se refiere a todos los elementos del vector vec, ya sea un vector rengln o
columna.
vec(m,n) se refiere a todos los elementos comprendidos entre las posiciones m y n
del vector vec.
Para matrices:
A(:,n) se refiere a los elementos de la columna n de la matriz A.
A(n,:) se refiere a los elementos del rengln n de la matriz A.
A(:,m:n) se refiere a los elementos entre las columnas m y n de la matriz A.
A(m:n,:) se refiere a los elementos entre los renglones m y n de la matriz A.
A(m:n,p:q) se refiere a los elementos del rengln m al n y los de la columna p a la q
de la matriz A.
Ejercicio de prctica 2.6
Realice los siguientes ejercicios de vectores y matrices en MatLab y observe los
resultados.
>> % Define un vector rengln a
>> a = [3 8 1]
Programacin Construccin de arreglos
Ing. Luis Lorenzo Jimnez Garca
42
>> % Define el vector rengln b como la transpuesta de a.
>> b = a'
>> % Define una matriz c de 3x4
>> c = [4 7 2 5; 30 12 7 9; 18 3 9 1]
>> % Define la transpuesta d de una matriz c
>> d = c'
>> % Se crea un vector z
>> z = [4 6 9 2 12 56 78 32 39]
>> % w es creado desde el elemento 3 hasta el 7 del vector z
>> w = z(3:7)
>> % Define una matriz A de 5x6. Todos los datos en una lnea
>> A = [1 3 5 7 9 11; 2 4 6 8 10 12; 3 6 9 12 15 18; 4 8 12 16
20 24; 5 10 15 20 25 30]
>> % Elementos de todos los renglones de la columna 3 de A
>> b = A(:,3)
>> % Elementos de todas las columnas del rengln 2 de A
>> c = A(2,:)
>> % Elementos del rengln 2 al rengln 4,todas las columnas
>> e = A(2:4,:)
>> % Elementos del rengln 1 al 3 y de la columna 2 a la 4.
>> f = A(1:3,2:4)
Programacin Construccin de arreglos
Ing. Luis Lorenzo Jimnez Garca
43
Ejercicio de prctica 2.7
Realice los siguientes ejercicios de vectores y matrices y analice su salida en MatLab.
>> % Se crea la matriz A
>> A = [1 3 5; 7 9 11]
>> % Se anula el elemento (2,3)
>> A(2,3)= 0
>> % La transpuesta de A
>> b = A'
>> c = [ b eye(3)]
>> % Se extraen las columnas impares de la matriz c
>> d = c(:,1:2:5)
>> % Interseccin de los dos primeros renglones de c y sus
>> % columnas tercera y quinta
>> e = c([ 1 2],[3 5])
>> % Interseccin de los dos primeros renglones y las tres
>> % ltimas columnas de la matriz c
>> f = c ( [1 2] , 3:5)
>> % Los elementos de la diagonal de g son los mismos de la
>> % diagonal d
>> g = diag(diag(d))
>> % Interseccin del 1y 3 rengln de c y su 2,3 y
Programacin Construccin de arreglos
Ing. Luis Lorenzo Jimnez Garca
44
>> % 5 columna
>> h = c ([1 3],[2 3 5])
>> % Matriz identidad, nula y unitaria de 5x4
>> i = [eye(5,4),zeros(5,4),ones(5,4)]
>> % Llamamos al primer rengln y todas las columnas
>> i(1,:)
>> % Se forma j con los renglones impares y las columnas
>> % pares
>> j = i(1:2:5, 2:2:12)
>> % Se calcula el orden o tamao de j
>> size(j)
>> % Nueva matriz
>> m = [3 11 6 5; 4 7 10 2; 13 9 0 8]
>> % Se asigna el valor de 20 al 3 rengln y 1 columna
>> m(3,1) = 20
>> m(2,4) m(1,2)
>> % Elimina todos los renglones de la columna 2 hasta 4.
>> m(:,2:4) = [ ]
2.4 Variables cadenas o strings
Una cadena es un arreglo de caracteres, que pueden ser letras, dgitos, otros smbolos
y espacios encerrados entre apstrofos (') y se asignan al nombre de una variable.
Tambin se puede usar el comando char
Programacin Construccin de arreglos
Ing. Luis Lorenzo Jimnez Garca
45
nombre_variable = char('cadena 1' , 'cadena 2' , 'cadena 3' )
Ejercicio de prctica 2.7
Realice los siguientes procesos de variables cadena:
>> b = 'Mi nombre es Luis Rodrigo'
b =
Mi nombre es Luis Rodrigo
>> Datos = char('Nombre del estudiante:','Luis Rodrigo',
'Grado:', '2-1')
Datos =
Nombre del estudiante:
Luis Rodrigo
Grado:
2-1
2.5 Aplicaciones
Problema 1. Uno de los clculos bsicos en ingeniera es encontrar la fuerza resultante
sobre un objeto que se empuja o jala en mltiples direcciones. Sumar fuerzas es el
clculo principal que se realiza en clases de esttica y dinmica. Considere un globo
sobre el que actan las fuerzas que se muestran en la Figura 2.1. Encuentre la
magnitud y la direccin de la fuerza total.
Programacin Construccin de arreglos
Ing. Luis Lorenzo Jimnez Garca
46
Figura 2.1 Globo sujeto a fuerzas
Solucin:
Para encontrar la fuerza total o neta que acta sobre el globo, se necesita sumar la
fuerza debida a la gravedad, la fuerza debida a la flotabilidad y la fuerza debida al
viento. Un enfoque es encontrar la fuerza en la direccin y la fuerza en la direccin
para cada fuerza individual y luego recombinarlas en un resultado final.
La fuerza en las direcciones y se pueden encontrar a partir de trigonometra (Fig.
2.2):
Figura 2.2 Direcciones de fuerzas
()
()
()
Se pueden sumar todas las fuerzas en la direccin y todas las fuerzas en la direccin
y usar estos totales para encontrar la fuerza resultante:
Para encontrar la magnitud y el ngulo de
]
Figura 2.3 Magnitudes
Nota: La tangente inversa tambin se llama arco tangente.
Una vez conocido se puede encontrar
()
()
Suponga que la fuerza debida a la gravedad en este globo particular es de 100 N,
dirigida hacia abajo, la fuerza de flotacin es de 200 N, dirigida hacia arriba y la fuerza
del viento es de 50 N, en un ngulo de 30 grados desde la horizontal, como se muestra
en la Fig. 2.4:
Fuerza gravitacional Fuerza de flotacin Fuerza del viento
Figura 2.4 Fuerzas principales que actan sobre el globo
De esta manera se puede encontrar la magnitud y la direccin de la fuerza resultante o
total.
Programacin Construccin de arreglos
Ing. Luis Lorenzo Jimnez Garca
48
Se generan las instrucciones en un archivo M-File Script (Este tipo de archivos se
tratan en el Cap. 4) en el editor de MatLab y se salvan con el nombre de globo
(Automticamente MatLab les d la extensin .m)
% Calcular la magnitud y la direccin de la fuerza
% total que se ejerce sobre un globo aerosttico
% Se definen las entradas de las fuerzas (F) y
% los ngulos (Grados) como vectores.
F = [100, 200, 50];
grados = [-90, +90, +30];
% Se transforma los grados a radianes
theta = grados*pi/180;
% Encuentra las componentes x
FX = F.*cos(theta);
% Suma las componentes x
FXtotal = sum(FX);
% Encuentra y suma las componentes de y
FYtotal = sum(F.*sin(theta));
% Se obtiene el ngulo resultante en radianes
theta_resul_radianes = atan(FYtotal/FXtotal);
% Se transforma el ngulo resultante en grados
theta_resul_grados = theta_resul_radianes*180/pi
% Encuentra la magnitud de la fuerza resultante
Ftotal = FXtotal/cos(theta_resul_radianes
Programacin Construccin de arreglos
Ing. Luis Lorenzo Jimnez Garca
49
En la Ventana de Comandos de MatLab se escribe el nombre del archivo globo.
>> globo
theta_resul_grados =
70.8934
Ftotal =
132.2876
La magnitud es de 132.2876 N y la direccin de 70.8934 grados.
Problema 2. El rango de un objeto que se lanza en un ngulo con respecto al eje x
y una velocidad inicial