Está en la página 1de 13

2.

EL LENGUAJE DE PROGRAMACION MATLAB

2.1. FUNDAMENTOS DE MATLAB

EL MATLAB (MATrix LABoratory) tiene como elemento básico


la matriz, que no requiere dimensionamiento previo y se escribe
tal como se hace matemáticamente, lo cual aporta facilidad y
rapidez de uso.

Al ejecutar el programa aparece un indicador de espera para la


introducción de los comandos propios de MATLAB:

>>_

1. Expresiones.

Se introducen tal como se escriben matemáticamente:

>> a = 4/3 respuesta: a=


1.3333

De esta manera se crea una variable “a” en el entorno de trabajo,


cuyo valor se puede consultar escribiendo su nombre:

>> a respuesta: a=
1.3333

MATLAB reconoce hasta 19 caracteres como nombre de variable


y es sensible a las mayúsculas (a ≠ A ).

Al introducir una expresión sin crear una variable, se genera la


variable ans, que equivale a answer:

>> 4/3 respuesta: ans=


1.3333
Para que no aparezca la respuesta en pantalla, se añade un punto y
coma (;) al final de la expresión:

1
>>b = 4+7;
>>

El comando who muestra las variables del espacio de trabajo:

>>who

a b ans

Si la expresión na cabe en una línea se utilizan tres puntos


seguidos (…) y se continúa en la siguiente línea:

>>p = 1+2+3+4+ …

5+6+7

Las expresiones pueden formarse con secuencias de números,


operadores, funciones y variables definidas previamente:

>>c = a * (b - 1) respuesta: c=
13.3333

Operadores: Los más usuales son * (multiplicación), \


(división por la izqda.), ^ (potencia).

Variables predefinidas: i, j, pi, Inf, NaN.

MATLAB contiene funciones que se pueden incorporar a


expresiones:

>>y = sqrt(1+4*i) respuesta: y=

1.6005+1.2486i

Se obtiene información general con help y ayuda sobre una


función, operador, etc, especificando el nombre:

2
>>help sqrt

2. Creación de Ficheros de Trabajo

Un fichero de trabajo (script) contiene secuancias de comandos


ejecutables en el entorno de trabajo MATLAB.

Se crean con un editor de texto externo, y se nombran con


extensión “.m”.

Cuando se escribe el nombre del fichero en el indicador de


MATLAB, se ejecutan los comandos que contiene:

% Ejemplo.m
% Ejecuta magnitud y fase de la funcion de transferencia
% G(jw) = 1/(jw+2) evaluada en w = 1.
w=1;
G = 1 / (j*w + 2);
magnitud= abs(G)
fase = atan (imag(G)/real(G))

Cuando escribamos el nombre de este fichero en el indicador


MATLAB aparecerá:

>> Ejemplo

magnitud=
0.4472
fase=
-0.4636

Todas las variables creadas en un fichero script permanecen en el


espacio de trabajo una vez ejecutado éste:

>>G respuesta: G=
0.4000 - 0.2000 i

3
Las líneas que comienzan con % son comentarios y no son
ejecutadas.

3. Matrices, Vectores y Polinomios.

Una matriz se introduce listando ssus elementos entre corchetes


[]:
-Los elementos de una fila (columna) se separan por comas
o blancos.

- Las filas se separan por “ ; “ o CR.

>>A = [1 2; 3 4] respuesta: A=
1 2
3 4

Los elementos de una matriz pueden ser cualquier expresión


MATLAB.

Se reconocen solo matrices rectangulares, con igual número de


columnas en cada fila.

Para conocer la dimensión de una matriz se utiliza el comando


size:

>>size(A) respuesta: ans =


2 2

Los elementos individuales de una matriz se referencian mediante


índices entre paréntesis:

>>A(2,2) = 5 respuesta: A=
1 2
3 5

4
Al añadir un elemento a una posición cuyos índices son
superiores al tamaño de la matriz, se insertan ceros
automáticamente para mantenerla rectangular:

>>A(3,3) = 6 respuesta: A=
1 2 0
3 5 0
0 0 6

Un vector es una matriz de dimensión 1xn ó nx1:

>>v = [sin(pi/3) -7^3 a+1]


v=
[0.8660 -343.0000 2.3333]

Se pueden crear vectores especiales utilizando “ : “

>>n = 1:10;

que genera un vector fila con elementos de 1 a 10 , a incrementos


de 1.

>>m = 1:0.25:2
m=
1.000 1.2500 1.5000 1.7500 2.0000

La función logspace(x,y,n) genera vectores con n elementos


espaciados logarítmicamente entre 10x y 10y.

La función linspace(x,y,n) genera vectores con n elementos


linealmante espaciados.

Se pueden manipular matrices de forma muy flexible:

- Añadir una fila a la matriz A:

>> A = [A;[7 8 9]] respuesta: A=


1 2 0

5
3 5 0
0 0 6
7 8 9

- Extraer una submatriz de A:

>>B = A(2:3,1:3) respuesta: B=


3 5 0
0 0 6

- Se utiliza “ : “ como índice para designar “todos los elementos”:

>> A(1,:) (devuelve la 1ª fila entera)


>> A(:) (todos los elementos de A en una única columna)

Hay además funciones que generan matrices especiales:

diag: genera una matriz diagonal.


eye: genera la matriz identidad (unos en la diagonal).
zeros: genera una matriz nula.
ones: genera una matriz de unos.
rand: genera una matriz de números aleatorios.

Los polinomios se describen en MATLAB mediante vectores


con los coeficientes del polinomio en orden de potencias
decrecientes:

Ejemplo: p = s2 + 5s +6

>> p = [ 1 5 6 ]

Se evalúan con la función polyval:

>> polyval(p,1) respuesta: ans =


12

Las raíces se obtienen con la función roots:

6
>> r = roots(p) respuesta: ans =
-3
-2

La función poly permite construir polinomios a partir de sus


raíces:

>>t = poly([-4 -5]) respuesta: t=


1 9 20

La multiplicación de polinomios entres sí se realiza mediante la


función conv:

>> q = [1 3] ;
>> s = conv(p,q)
s=
1.0000 8.0000 21.0000 18.0000

4. Operaciones con Matrices.

La aritmética es la misma que la utilizada con escalares:

>> B = [5 0 ; 0 6]; D = [1 0 ; 0 2];


>> B + D respuesta: ans =
6 0
0 8

>> B * D respuesta: ans =


5 0
0 12

La división puede ser por la izquierda (\) o por la derecha (/):

P ⋅ x = Q ⇒ x = P −1 ⋅ Q ⇒ x = P \ Q

7
y ⋅ P = Q ⇒ y = Q ⋅ P-1 ⇒ y = Q / P

Para obtener la transposición de una matrriz o vector se utiliza el


apóstrofe (´):

>>A = [1 2 ; 3 4 ];
>> A´ respuesta: A=
1 3
2 4

Hay funciones MATLAB para operar sobre matrices, com det(X),


inx(X), rank(X), eig(X), expm(X), etc.

Para operar sobre una matriz o un vector, elemento a elemento, se


utiliza un punto “ . “ delante del operador:

>> datos = [1 2 3];


>> datos.^2 respuesta: ans =
1 4 9
>>datos .* [4 5 6] respuesta: ans =
4 10 18

Algunas funciones operan elementoa elemento automáticamente,


como exp, abs, sqrt, real, log, etc.

Se pueden emplear también operadores relacionales y lógicos con


matrices.

5. Creación de Funciones

Las funciones son secuencias de sentencias que ejecutan una tarea


independiente.

La sintaxis de definición de la función viene dada por:

function [arg. de salida]= nombre(arg. de entrada)

8
function y = sigmoide(x)
y= 1/ (1 + exp(-x));

>>c= 0.7; a= sigmoide(c);


a=
0.6682

Una función se diferencia de un fichero script en su primera línea


(que contiene la palabra function), puede ser usada como parte de
una expresión y además las variables generadas por la función
son locales a ella.

Hay comandos para control de flujo, como for, while, if, break,
error, etc.

2.2. GRAFICOS Y VISUALIZACION

MATLAB suministra una importante colección de funciones


gráficas debido a la facilidad de comprensión que aporta la
percepción visual de datos.

1. Gráficos Bidimensionales

La función plot genera gráficos 2D, y opera sobre vectores y


matrices.

>> plot (X,Y)

grafica X frente a Y

>> plot (X1,Y1,X2,Y2)

es usada para producir multiples plots superpuestos. Se pueden


utilizr diferentes símbolos para denotar el color y el tipo de línea

9
y yellow . point
m magenta o circle
c cyan x x-mark
r red + plus
g green - solid
b blue * star
w white : dotted
k black -. dashdot
-- dashed

Por ejemplo:

>> plot(x1,y1,’:’,x2,y2,’+’)

>> plot(x)

realiza la gráfica de x frente a su índice.

Una vez dibujado el gráfico, el comando ginput permite obtener


las coordenadas del punto del gráfico donde se hace clic con el
ratón:

>>[x,y]= ginput

Otros comandos para gráficos 2D son:

- loglog, semilogx, semilogy, para escalado logarítmico de ejes.


- polar, en coordenadas polares.
- bar, stairs: gráficos de barras y escalonados.

2. Adaptación de Gráficos

Comandos que incluyen etiquetas para los ejes (xlabel,ylabel),


poner título (title), escribir texto(gtext), cambios de escala, etc,
para aportar legibilidad.

El comando subplot permite dividir la ventana de gráficos en


varias partes.

10
>> t=0:0.1:10; x1= exp(-t); x2= sin(t);
>>subplot(211);plot(t,x1);xlabel(‘t’);ylabel(‘x1’);
>>subplot(212);plot(t,x2);xlabel(‘t’);ylabel(‘x2’);

x1 0.5

0
0 2 4 6 8 10
t
1

0.5
x2 0

-0.5

-1
0 2 4 6 8 10
t

Otros comandos utilizados son hold y axis:

- hold: retiene el gráfico actual en la pantalla, manteniendo el


escalado de ejes, tal que hold on lo activa y hold off lo desactiva.

- axis: permite definir las escalas de la gráfica, tal que axis


devuelve un vector conteniendo [x_min,x_max,y_min,y_max]
del último gráfico realizado, y axis(v) establece el escalado con
los valores definidos en v.

3. Gráficos Tridimensionales

Existen dos comandos, mesh para respresentación 3D y contour


para dibujo de curvas de nivel.

Ejemplo: dibujo de la superficie z = x4 + (y/2)4

>> x = [-1:0.1:1];
>> y = [-2:0.1:2];
>> [X,Y] = meshdom(x,y);
>> Z = X.^4 + (Y/2).^4;

11
>> mesh(X,Y,Z);
>> xlabel(‘x’);ylabel(‘y’);zlabel(‘z’);

1.5

z 1

0.5

0
2
1 1
0 0.5
0
-1 -0.5
y -2 -1 x

>> contour(X,Y,Z)

1.5

0.5

y 0

-0.5

-1

-1.5

-2
-1 -0.5 0 0.5 1
x

Cada curva del dibujo del contorno representa los valores de x e y


que corresponden a un valor fijo de z.

El plano x-y coincide con el plano de la hoja y el eje z está


representado hacia fuera. El comando view(az,el) permite la

12
rotación de la superficie con angulo horizontal az y de elevación
el.

La gráfica de curvas de nivel ayuda a ver la forma tridimensional


de la superficie mesh.

13

También podría gustarte