OPERACIONES
CON ARRAYS
Crear
una array simple manualmente.
Iniciar con corchete de apertura, introducir
los valores deseados por espacios o comas y luego cerrar con un corchete
de cierre.
EDU»
angulos = [0 pi/2 pi 3*pi/2 2*pi]
angulos
=
0
1.5708 3.1416 4.7124 6.2832
EDU»
seno = sin(angulos)
seno
=
0
1.0000 0.0000 -1.0000 0.0000
EDU»
unocomplejo=[1 3+i i, 3-i]
unocomplejo
=
1.0000
3.0000 + 1.0000i 0 + 1.0000i 3.0000 - 1.0000i |
Direccionamiento
de ARRAYS
Dado un array existen maneras de seleccionar
solo una parte de ellos.
angulos = 0 1.5708 3.1416 4.7124 6.2832
Un elemento solo :
EDU»
angulos(2) % selecciona el segundo elemento
ans
=
1.5708 |
Un bloque de elementos:
EDU»
angulos(1:3) % selecciona los elementos del 1º al 3º
ans
=
0
1.5708 3.1416 |
Salteados:
EDU»
angulos(1:2:5) % selecciona los elementos del 1º hasta el 5 º
salteando
de dos en dos.
ans
=
0
3.1416 6.2832 |
Selección aleatoria de elementos
en cualquier orden
Construir el array siguiente
aleat=[10.345 8.45 2.34 6.87 3 2.01 9.65]
Seleccionar el elemento primero, el quinto,
el segundo y el sexto, por ese orden
EDU»
aleat=[10.345 8.45 2.34 6.87 3 2.01 9.65];
EDU»
aleat([1 5 2 6])
ans
=
10.3450
3.0000 8.4500 2.0100 |
Creación
automática de ARRAYS
Hay dos formas
-
Conocido el paso entre elementos
-
Conocido el número de elementos pero
no el paso
Conocido el paso entre elementos
Ejemplo1:
Construir un array de 0 a 2.7 de 0.2 en 0.2
prueba1=(0:0.2:2.7)
Ejemplo2:
Construir un array de 0 a 2.7 de 0.2*pi en 0.2*pi
prueba2=(0:(0.2*pi):2.7)
Conocido el número de elementos
Se usa
la función linspace(primervalor,ultimovalor,número de valores)
Ejemplo3:
Construir un array de 3 a 35 con 10 puntos en total
prueba3=linspace(3,35,10)
Calcular
el paso resultante
paso=prueba3(2)-prueba3(1)
Componer arrays
Construir de forma automática el
array siguiente:
[0 1 2 3 4 5 6 7 9 11 13 15 17 19 21]
Construimos primero los 10 primeros elementos
a=(0:1:9)
Luego los demás:
b=(11:2:21)
Y los componemos
comp=[a b]
Operaciones
de arrays con escalares
Calcular el triple, la mitad, cada elemento
más 3 y cada elemento menos 1 del array comp.
Se pueden realizar si tienen el mismo tamaño,
se usan los operadores + - .* ./ .^
Estas operaciones se realizan elemento
a elemento.
Construir dos arrays de 10 elementos,
empezando en 1 y 2 respectivamente. El primero con números impares
y el segundo con pares. Sumarlos, restarlos, multiplicar sus elementos
entre sí, dividirlos entre si y elevar cada elemento de ambos al
cuadrado, elevar cada elemento a la potencia que indica el otro.
EDU»
pares=(2:2:20)
pares
=
2
4 6 8 10 12 14 16 18 20
EDU»
impares=(1:2:19)
impares
=
1
3 5 7 9 11 13 15 17 19
EDU»
suma=pares+impares
suma
=
3
7 11 15 19 23 27 31 35 39
EDU»
resta=pares-impares
resta
=
1
1 1 1 1 1 1 1 1 1
EDU»
multiplic=pares.*impares
multiplic
=
2
12 30 56 90 132 182 240 306 380
EDU»
division=pares./impares
division
=
2
1.3333 1.2000 1.1429 1.1111 1.0909 1.0769 1.0667 1.0588 1.0526
parescuad=pares.^2
parescuad
=
4
16 36 64 100 144 196 256 324 400
format
long e
EDU»
potencia=pares.^impares
potencia
=
200000000000e+000
6.400000000000000e+001 7.776000000000000e+003 2.097152000000000e+006 100000000000e+009
7.430083706880000e+011 7.937147732541440e+014 1.152921504606847e+018 2.185911559738696e+021
5.242880000000000e+024 |
Trasponer arrays
Basta con añadir’
Entonces ya se puede hacer la multiplicación
directa. Producto escalar
EDU»
a=(1:3) % por defecto coge un paso de uno
a
=
1
2 3
EDU»
b=(5:8)
b
=
5
6 7
EDU»
a*b'
ans
=
38 |
Producto
escalar y producto vectorial. dot y cross
dot(A,B) devuelve el producto escalar de A por B(deben
tener la misma dimensión)
cross(A,B) donde A y B son vectores de tres elementos, devuelve
el producto vectorial AxB
EDU»
a=(1:3);b=(5:7);
EDU»
dot(a,b)
ans
=
38
EDU»
cross(a,b)
ans
=
-4
8 -4
EDU»
cross(b,a)
ans
=
4
-8 4 |
EJERCICIOS:
3.1) Construir un
array con los números del 1 al 20 llamada A .
Seleccionar desde
el 7 de tres en tres hasta el final números y llamarlo B.
Seleccionar desde
el 20 bajando de tres en tres hasta el 7 números y llamarlo C.
SOLUCIÓN
3.2)Sea a=(2,-3,7)
y b=(4,0,-1),calcula la mitad de a y el doble de a .Calcula el poducto
escalar axb.
SOLUCIÓN
3.3)Calcular la
velocidad del centro de una rueda que gira a 10 rad/s si tiene un radio
de 0.28 m.
SOLUCIÓN |