Un vector de datos puede
definirse como
x = [0, 0.1, 0.2, 0.3, 0.4,
0.5]
si se desea imprimir un dato
en particular se teclea
x(3)
el cual imprimirá el número
en la tercer posición del arreglo, el primer elemento se numera con el uno.
Una forma equivalente de
definir la misma x es
clear;
for
i=1:6
x(i) = (i-1)*0.1;
end
x
x(3)
Otra forma de escribir un
arreglo es
clear;
x =
2: -0.4: -2
pause;
Podemos definir arreglos en
fila o columna
clear;
z =
[0; 0.1; 0.2; 0.3; 0.4; 0.5]
z =
[0, 0.1, 0.2, 0.3, 0.4, 0.5]'
podemos realizar
operaciones entre arreglos fila o columna con
clear;
x = [1, 2, 3, 4]
y = [4, 3, 2, 1]
suma = x + y
resta = x - y
mult = x .* y
div = x ./ y
Las operaciones de suma y
resta son iguales que para el álgebra lineal. En cambio .* y ./ son operadores nombrados
para la división de arreglos. Si se omite el punto el significado es diferente
lo cual es equivalente a
clear;
x = [1, 2, 3, 4]
y = [4, 3, 2, 1]
Para la suma hacemos
for
i=1:4; suma(i) = x(i) + y(i); end;
En la resta
for i=1:4; resta(i) = x(i)
- y(i); end;
Multiplicación
for
i=1:4; mult(i) = x(i) * y(i); end;
y
División
for
i=1:4; div(i) = x(i) - y(i); end;
Concatenacion
clear;
x = [2, 3]
x = [x, 4]
en el caso de arreglos
columna
clear;
y = [2, 3]'
y = [y; 4]
para extraer la una parte
de un vector
clear;
y = [1,2,3,4,5,6,7,8,9]
w = y(3:6)
para obtener la longitud de
un arreglo se utiliza
clear;
y = [1,2,3,4,5,6,7,8,9]
length(y)
La variables de cadena también
puede tener caracteres
clear;
v = 'Hola Mundo'
w = ['H', 'o', 'l', 'a', '
', 'M', 'u', 'n', 'd', 'o']
y podemos cambiar el orden
de impresión haciendo
clear;
v = 'Hola Mundo'
v = v'
w = ['H', 'o', 'l', 'a', '
', 'M', 'u', 'n', 'd', 'o']
w = w'
Ejemplo 1.
Dado un arreglo de datos
calcular el promedio de este y el mayor de los valores.
x =
[3 9 5 8 2]
n =
length(x);
suma =0;
max = x(1);
for k=1:n
suma = suma + x(k);
if(max <
x(k)); max = x(k); end;
end;
suma = suma/n;
fprintf('El promedio es = %5.2f\n', suma);
fprintf('El mayor es = %5.2f\n',
max);
Ejemplo 2.
Escribir un programa que verifique
si una cadena de caracteres e un palíndromo.
x = '10011'
y =
x(length(x):-1:1)
if(x == y)
fprintf('Es palíndromo \n');
else
fprintf('No es palíndromo \n');
end;
Arreglos
Bidimensionales.
Para definir arreglos
bidimensionales o matrices hacemos
m = [0.1, 0.2, 0.3; 0.4,
0.5, 0.6; 0.7, 0.8, 0.9]
otra manera de definirlos
es utilizar
clear;
m(1,1)
= 0.1;
m(1,2)
= 0.2;
m(1,3)
= 0.3;
m(2,1)
= 0.4;
m(2,2)
= 0.5;
m(2,3)
= 0.6;
m(3,1)
= 0.7;
m(3,2)
= 0.8;
m(3,3) = 0.9;
Podemos listar columnas de
la matriz haciendo
m(:,1)
m(:,2)
m(:,3)
o también renglones
m(1,:)
m(2,:)
m(3,:)
podemos realizar
operaciones de +. -, * y / con matrices
a = [0.1, 0.2, 0.3; 0.4,
0.5, 0.6; 0.7, 0.8, 0.9]
b = [0.3, 0.4, 1.3; 0.6,
-0.7, 1.0; -2.0, 1.8, 9]
suma = a + b
resta = a - b
mult = a .* b
div = a ./ b
lo cual es equivalente a
a =
[0.1, 0.2, 0.3; 0.4, 0.5, 0.6; 0.7, 0.8, 0.9]
b =
[0.3, 0.4, 1.3; 0.6, -0.7, 1.0; -2.0, 1.8, 9]
for
i=1:3
for j=1:3
suma(i,j) = a(i,j) + b(i,j);
end
end
suma
for
i=1:3
for j=1:3
resta(i,j) = a(i,j) - b(i,j);
end
end
resta
for
i=1:3
for j=1:3
mult(i,j) = a(i,j) * b(i,j);
end
end
mult
for
i=1:3
for j=1:3
div(i,j) = a(i,j) / b(i,j);
end
end
div
pause;
también podemos utilizar el
operador de potenciación en arreglos
clear;
a =
[0.1, 0.2, 0.3; 0.4, 0.5, 0.6; 0.7, 0.8, 0.9]
g =
a .^2
pause;
el cual es equivalente
a =
[0.1, 0.2, 0.3; 0.4, 0.5, 0.6; 0.7, 0.8, 0.9]
for
i=1:3
for j=1:3
g(i,j) = a(i,j)^2;
end
end
cuando queremos realizar las
operaciones del álgebra lineal de suma, resta, multiplicación y división
hacemos
la suma y resta son iguales
pero la multiplicación cambia
A = [0.1, 0.2, 0.3; 0.4,
0.5, 0.6; 0.7, 0.8, 0.9]
x = [1, 2, 3]'
b = A*x
para la división tendremos
A = [1, 4; 3, 5]
x = [2, 3]'
b = A\x