Ingresando a MATLAB
Para verificar que MATLAB ha iniciado deberá mostrarse una pantalla similar a
la siguiente:
UNCP – FACULTAD DE INGENIERÍA MECÁNICA
MG. ARTURO GAMARRA MORENO
Ante todo, se debe establecer una carpeta activa (antes se debe tener creada
la carpeta d:\pramn), tecleando
>> cd d:\pramn
Ahora los ficheros de su carpeta son visibles desde MATLAB. Para
comprobarlo, teclee dir (y pulse "Enter"). Debería aparecer una lista de las
carpetas y ficheros que hay en la carpeta.
Para finalizar la sesión bastará con teclear exit o quit, o simplemente cerrar la
ventana de MATLAB (indistintamente). El programa se cerrará y volverá a la
pantalla principal de Windows.
>> 3+2
x =
6
Se realiza la operación indicada y asigna el resultado a x: x = 6. La variable
conserva su valor a lo largo de toda la sesión, salvo que se le asigne otro o se
le prive de valor por medio de:
>> clear
Observe la gran particularidad de MATLAB: a diferencia de muchos otros
lenguajes de programación, aquí no se requiere declarar variables de
antemano.
Varios comandos de MATLAB pueden ir en una misma línea, separados por
una coma o un punto y coma (recuerde que el último suprime la salida del
resultado por pantalla; así, si únicamente desea que se asigne el valor, pero no
quiere ver el resultado, basta con añadir un ; después de la orden).
Por ejemplo, si efectuamos:
>> z=36-7;
el resultado se asignará a z, pero no se mostrará por pantalla. Para
inspeccionar posteriormente el valor de z bastará con teclear el nombre de la
variable:
>> z
a lo que MATLAB responderá con: z = 29.
Casi todas las funciones elementales (y muchas de las funciones especiales)
se encuentran incluidas en MATLAB: las funciones trigonométricas: sin, cos,
tan, acos, asin, atan, los logaritmos: log, log10, la función exponencial: exp,
la raíz cuadrada: sqrt, las funciones hiperbólicas: sinh, cosh, etc. Para usar
cualquiera de estas funciones se debe colocar el argumento entre paréntesis.
Por ejemplo:
>> y=log(18*z+x);
>> A(2,1)
Se obtendrá:
ans =
6
>> b(3)=18
>> b
b =
7 3 4 9 2 11
<inicio>:<incremento>:<final>
nos permiten generar un vector con valores <inicio>, <inicio>+<incremento>,
<inicio>+2<incremento>, ..., hasta llegar a <final>. De omitirse, el
<incremento>=1. Por ejemplo, se puede ejecutar:
>> v = 1:-0.3:-1
v =
ans =
3 18 9
extrae los elementos con los índices 2, 3 y 4, mientras que:
>> A(1:2,2:3)
ans =
-1 4
9 -4
devuelve el menor de A correspondiente a la intersección de las filas 1, 2 y
columnas 2, 3. Si simplemente especificamos ":", MATLAB lo interpreta como
"todo el rango de valores", es decir, toda una fila o columna. Por ejemplo, con:
>> A(3,:)
se obtiene la tercera fila de la matriz A:
ans =
0 2 1
c =
7
3
18
9
2
11
El operador * es por defecto una multiplicación matricial, de modo que para
llevarse a cabo requiere que las dimensiones de las matrices (o vectores) sean
las apropiadas.
>> c*a
ans =
49 21 126 63 14 77
21 9 54 27 6 33
126 54 324 162 36 198
63 27 162 81 18 99
14 6 36 18 4 22
77 33 198 99 22 121
>> a*c
ans =
588
Si se desean efectuar operaciones con vectores o matrices elemento a
elemento, se debe agregar un punto (.) antes del operador para indicarlo. Así,
por ejemplo, la división de dos vectores no es una operación definida. Sin
embargo, puede calcularse la división elemento a elemento, Ejemplo:
>> a./b
ans =
1 1 1 1 1 1
UNCP – FACULTAD DE INGENIERÍA MECÁNICA
MG. ARTURO GAMARRA MORENO
ans =
49 9 324 81 4 121
Ejercicio 6. Introduzca los vectores f = [3,8,-2,15,3] y g = [4,0,4,-12,2] y
calcule su producto elemento a elemento.
La mayoría de las funciones elementales aplicadas a un vector se realizan
elemento a elemento:
>> log(a)
ans =
Ejercicio 7. Calcule los valores de √𝒏, para n=1, 2,..., 16, asignando la tabla
resultante a la variable raíces.
5. Tipos de matrices predefinidos
Existen en MATLAB varias funciones orientadas a definir con gran facilidad
matrices de tipos particulares.
Algunas de estas funciones son las siguientes:
eye(4) forma la matriz unidad de tamaño (4×4)
zeros(3,5) forma una matriz de ceros de tamaño (3×5)
zeros(4) ídem de tamaño (4×4)
ones(3) forma una matriz de unos de tamaño (3×3)
ones(2,4) idem de tamaño (2×4)
linspace(x1,x2,n) genera un vector con n valores igualmente espaciados entre x1 y
x2
logspace(d1,d2,n) genera un vector con n valores espaciados logarítmicamente entre
10^d1 y 10^d2. Si d2 es pi9, los puntos se generan entre 10^d1 y pi
rand(3) forma una matriz de números aleatorios entre 0 y 1, con distribución
uniforme, de tamaño (3×3)
rand(2,5) idem de tamaño (2×5)
randn(4) forma una matriz de números aleatorios de tamaño (4×4), con
distribución normal, de valor medio 0 y varianza 1.
magic(4) crea una matriz (4×4) con los números 1, 2, ... 4*4, con la propiedad
de que todas las filas y columnas suman lo mismo
hilb(5) crea una matriz de Hilbert de tamaño (5×5). La matriz de Hilbert es
una matriz cuyos elementos (i,j) responden a la expresión (1/(i+j-1)).
Esta es una matriz especialmente difícil de manejar por los grandes
errores numéricos a los que conduce
invhilb(5) crea directamente la inversa de la matriz de Hilbert
kron(x,y) produce una matriz con todos los productos de los elementos del
vector x por los elementos del vector y. Equivalente a x'*y, donde x
e y son vectores fila
UNCP – FACULTAD DE INGENIERÍA MECÁNICA
MG. ARTURO GAMARRA MORENO
m =
n =
3
n=length(x) calcula el número de elementos de un vector x
Ejemplo:
>> x=[5 7 8 9];
>> n=length(x)
n =
4
zeros(size(A)) forma una matriz de ceros del mismo tamaño que una matriz
A previamente creada
Ejemplo:
>> A=[2 3 4; 5 3 4;6 8 1];
>> zeros(size(A))
UNCP – FACULTAD DE INGENIERÍA MECÁNICA
MG. ARTURO GAMARRA MORENO
ans =
0 0 0
0 0 0
0 0 0
Ejemplo:
>> A=[2 3 4; 5 3 4;6 8 1];
>> x=[0 0 0];
>> A=diag(x)
A =
0 0 0
0 0 0
0 0 0
x=diag(A) forma un vector x a partir de los elementos de la diagonal de
una matriz ya existente A
Ejemplo:
>> A=[2 3 4; 5 3 4;6 8 1];
>> x=diag(A)
x =
2
3
1
diag(diag(A)) crea una matriz diagonal a partir de la diagonal de la matriz A
Ejemplo:
>> A=[2 3 4; 5 3 4;6 8 1];
>> diag(diag(A))
ans =
2 0 0
0 3 0
0 0 1
6. Gráficas
MATLAB le permite presentar sus resultados en forma gráfica, en una gran
diversidad de formatos. Dado un vector fila o columna puede utilizarse la
función plot para mostrar el gráfico del vector en pantalla. Por ejemplo:
plot(raices);
UNCP – FACULTAD DE INGENIERÍA MECÁNICA
MG. ARTURO GAMARRA MORENO
>> x=<inicio>:<inc.>:<final>;
>> y=f(x);
>> plot(x,y);
Mientras más puntos tomamos, más fiel es la gráfica, pero mayor es el volumen
de datos y más se tarda en obtenerlos o procesarlos.
Existen múltiples comandos para modificar el gráfico una vez construido. Por
ejemplo, si fuera necesario, puede añadirse una rejilla a la gráfica usando la
instrucción grid; o etiquetar los ejes por medio de xlabel (para el eje de
abscisas) e ylabel (para el eje de ordenadas).
El resultado de:
>> plot(raices);
>> xlabel('n'); ylabel('Raiz cuadrada de n');
>> grid
se observa en la Figura 3.
UNCP – FACULTAD DE INGENIERÍA MECÁNICA
MG. ARTURO GAMARRA MORENO
Por ejemplo, para generar el último gráfico construido era equivalente crear un
fichero con la extensión .m, por ejemplo, grafico.m, con el contenido:
plot(raices);
UNCP – FACULTAD DE INGENIERÍA MECÁNICA
MG. ARTURO GAMARRA MORENO
MATLAB nos permite guardar todas las variables en un fichero para poder
recuperarlas posteriormente. Para ello basta con teclear:
Para más opciones sobre load o save teclee help load o help save desde la
línea de comandos de MATLAB.