You are on page 1of 14

ndice

Varios
1234-

Comandos varios
Comentarios
Medida de tiempos y de esfuerzo de clculo
Determinacin de la fecha y la hora

Matrices y vectores
5- Matrices y vectores
6- Operaciones con matrices
7- Nmeros complejos
8- Comando CLEAR
9- Funciones del editor
10- Formacin de una matriz a partir de otras
11- Operadores relacionales
12- Operadores lgicos
13- Funciones matemticas elementales que operan de modo escalar
14- Funciones que actan sobre vectores
15- Funciones que actan sobre matrices
16- Funciones matriciales especiales
17- Otras funciones que actan sobre vectores y matrices

Grficos bidimensionales
18- Funciones grficas 2D elementales
19- Funcin PLOT
20- Estilos de lnea y marcadores de la funcin PLOT
21- Comando SUBPLOT
22- Funcin AXIS()
23- Funcin FIGURE
24- Otras funciones grficas 2-D

Otros
25- Extraer datos de un bloc de notas

1. Comandos varios
>>clc

Limpiar consola
Mostrar como inicial pero mantener las
variables anteriores

>>home
>>quit >>exit

Salir de Matlab

Buscar informacin sobre un nombre de comando o funcin


>>doc (nombre de la funcin, comando o nada)
>>help (nombre de la funcin, comando o nada)
>>doc (nombre de la funcin, comando o nada)
Al pulsar tabulador mientras escribes una funcin, se completa automticamente el nombre

2. Comentarios
% comentario Insertar comentarios
%{ y %}
Comentario extenso

3. Medida de tiempos y de esfuerzo de clculo


Cputime
Etime (t1,t2)
Tic ops toc

Devuelve el tiempo de CPU desde que el programa arranc. Llamando antes


y despus de una operacin y restando valores podemos saber el tiempo
empleado
Tiempo transcurrido entre los vectores t1 y t2, obtenidos como respuesta al
comando clock
Tiempo requerido por ops. Tic pone el reloj a cero y toc obtiene el tiempo
transcurrido. Ej: tic; x=A/B; toc;

4. Determinacin de la fecha y la hora


clock

now
date
datestr(t)
datenum()
datevec()

Devuelve un vector fila de seis elementos que representan el ao, el mes, el da,
la hora, los minutos y los segundos, segn el reloj interno del computador.
Los cinco primeros son valores enteros, pero la cifra correspondiente a los
segundos contiene informacin hasta las milsimas de segundo.
Devuelve un nmero (serial date number) que contiene toda la informacin de
la fecha y hora actual. Se utiliza como argumento de otras funciones
Devuelve la fecha actual como cadena de caracteres (por ejemplo: 24-Aug-2004)
Convierte el serial date number t en cadena de caracteres con el da, mes, ao,
hora, minutos y segundos. Ver en los manuales on-line los formatos de cadena
admitidos
Convierte una cadena ('mes-da-ao') o un conjunto de seis nmeros (ao, mes,
da, horas, minutos, segundos) en serial date number
Convierte serial date numbers o cadenas de caracteres en el vector de seis
elementos que representa la fecha y la hora

Devuelve una matriz 67 con el calendario del mes actual, o del mes y ao que
se especifique como argumento
weekday(t) Devuelve el da de la semana para un serial date number t.
calendar()

5. Matrices y vectores
Matriz entre dos valores x = [-4:0.1:4]
| | |
1 2 3
1 Valor inicial. 2 Intervalo entre valores. 3 Valor final
A=rand(6) Matriz de 6x6 aleatoria
Introducir matrices Las matrices se introducen por filas ej:
>> A= [1 2 3; 4 5 6; 7 8 9];
A=
1
4
7

2
5
8

3
6
9

Matriz traspuesta de A >> A


Matriz inversa de A >>inv(A);
Acceder a elementos en matrices
Vectores A(2); A(i);
Matrices A(4); A(1,2); A(columna, fila)
Como la matriz se guarda por orden, en columnas, aunque se almacenan por filas, A(4) y A(1,2)
dan el mismo resultado
Cambiar la precisin del numero de filas file/preferences/general
Definir un vector fila >> x=[10 20 30]
Definir un vector columna >> x=[11; 12; 13]

6. Operaciones con matrices


+

*
'
^
\
/
.*
./ y .\
.^

adicin o suma
sustraccin o resta
multiplicacin
traspuesta
potenciacin
divisin-izquierda
divisin-derecha
producto elemento a elemento
divisin elemento a elemento
elevar a una potencia elemento a elemento

7. Nmeros complejos
>>a=sqrt(-4);
a=
0+2.0000i

>>3+4j;
ans=
3.000+4.000i

Matrices de valores complejos


A=[1+2i; 2+3i; -1+i; 2-3i]
Nota: Conviene hacer >>clear para que i no est definida como variable
Funcin complex
>>complex (2,1)
ans=
1.0000+2.0000i
Nota: El operador matriz traspuesta () en matrices complejas devuelve la matriz
conjugada y traspuesta.
Conj() matriz compleja conjugada
(.)
matriz traspuesta

8. Comando CLEAR
clear
clear A,B
clear global
clear functions
clear all

Borra todas la variables creadas previamente (excepto las globales)


Borra las variables indicadas
Borra solamente variables globales (+ info >>help global)
Borra las todas las funciones compiladas
Borra todas las variables, incluyendo las globales y las funciones

9. Funciones del editor

Figura 21

10.

Formacin de una matriz a partir de otras

MATLAB ofrece tambin la posibilidad de crear una matriz a partir de matrices previas ya
definidas, por varios posibles caminos:
Recibiendo alguna de sus propiedades (como por ejemplo el tamao)
Por composicin de varias submatrices ms pequeas
Modificndola de alguna forma
[m,n]=size(A)
n=length(x)
zeros(size(A))
ones(size(A))
A=diag(x)
x=diag(A)
diag(diag(A))
blkdiag(A,B)

triu(A)
tril(A)
rot90(A,k)
flipud(A)
fliplr(A)

Devuelve el nmero de filas y de columnas de la matriz A. Si la matriz es


cuadrada basta recoger el primer valor de retorno
Calcula el nmero de elementos de un vector x
Forma una matriz de ceros del mismo tamao que una matriz A
previamente creada
dem con unos
Forma una matriz diagonal A cuyos elementos diagonales son los
elementos de un vector ya existente x
Forma un vector x a partir de los elementos de la diagonal de una matriz
ya existente A
Crea una matriz diagonal a partir de la diagonal de la matriz A
crea una matriz diagonal de submatrices a partir de las matrices que se
le pasan como argumentos
Forma una matriz triangular superior a partir de una matriz A (no tiene
por qu ser cuadrada). Con un segundo argumento puede controlarse
que se mantengan o eliminen ms diagonales por encima o debajo de la
diagonal principal
dem con una matriz triangular inferior
Gira k*90 grados la matriz rectangular A en sentido antihorario. k es un
entero que puede ser negativo. Si se omite, se supone k=1
Halla la matriz simtrica de A respecto de un eje horizontal
Halla la matriz simtrica de A respecto de un eje vertical

reshape(A,m,n)

11.

Cambia el tamao de la matriz A devolviendo una matriz de tamao


mn cuyas columnas se obtienen a partir de un vector formado por las
columnas de A puestas una a continuacin de otra. Si la matriz A tiene
menos de mn elementos se produce un error.

Operadores relacionales

< Menor que


> Mayor que
<= Menor o igual que

12.

Operadores lgicos

&

and(A,B)

&&

and breve

or(A,B)

||

or breve

not(A)
Or
exclusivo

xor(A,B)

>= Mayor o igual que


== Igual que
~= Distinto que

Se evalan siempre ambos operandos, y el resultado es true slo si


ambos son true
Si el primer operando es false ya no se evala el segundo, pues el
resultado final ya no puede ser ms que false.
Se evalan siempre ambos operandos, y el resultadoes false slo si
ambos son false.
Si el primer operando es true ya no se evala el segundo, pues el
resultado final no puede ser ms que true.
Negacin lgica. Devuelve el contrario que A
Devuelve 0 en el caso en que ambos sean 1 ambos sean 0.

13.
Funciones matemticas elementales que
operan de modo escalar
sin(x)
cos(x)
tan(x)
asin(x)
acos(x)
atan(x)
atan2(x)
sinh(x)
cosh(x)
tanh(x)
asinh(x)
acosh(x)
atanh(x)
log(x)
log10(x)
exp(x)

Seno
Coseno
Tangente
Arco seno
Arco coseno
Arco tangente (devuelve un ngulo entre -/2 y +/2)
Arco tangente (devuelve un ngulo entre - y +); se le pasan 2
argumentos, proporcionales al seno y al coseno
Seno hiperblico
Coseno hiperblico
Tangente hiperblica
Arco seno hiperblico
Arco coseno hiperblico
Arco tangente hiperblica
Logaritmo natural
Logaritmo decimal
Funcin exponencial

sqrt(x)

Raz cuadrada
Devuelve -1 si <0, 0 si =0 y 1 si >0. Aplicada a un nmero complejo,
sign(x)
devuelve
un vector unitario en la misma direccin
rem(x,y) Resto de la divisin (2 argumentos que no tienen que ser enteros)
mod(x,y) Similar a rem (Ver diferencias con el Help)
round(x) Redondeo hacia el entero ms prximo
fix(x)
Redondea hacia el entero ms prximo a 0
floor(x) Valor entero ms prximo hacia -
ceil(x)
Valor entero ms prximo hacia +
gcd(x)
Mximo comn divisor
lcm(x)
Mnimo comn mltiplo
real(x) Partes reales
imag(x) Partes imaginarias
abs(x)
Valores absolutos
angle(x) ngulos de fase

14.

Funciones que actan sobre vectores

[xm,im]=max(x) Mximo elemento de un vector. Devuelve el valor mximo xm y la posicin


que ocupa im
Mnimo elemento de un vector. Devuelve el valor mnimo y la posicin que
min(x)
ocupa
sum(x) suma de los elementos de un vector
Devuelve el vector suma acumulativa de los elementos de un vector (cada
cumsum(x)
elemento del resultado es una suma de elementos del original)
mean(x)
Valor medio de los elementos de un vector
std(x)
prod(x)
cumprod(x)
[y,i]=sort(x)

Desviacin tpica
Producto de los elementos de un vector
Devuelve el vector producto acumulativo de los elementos de un vector
Ordenacin de menor a mayor de los elementos de un vector x. Devuelve el
vector ordenado y, y un vector i con las posiciones iniciales en x de los
elementos en el vector ordenado y

En realidad estas funciones se pueden aplicar tambin a matrices, pero en ese caso se aplican
por separado a cada columna de la matriz, dando como valor de retorno un vector resultado
de aplicar la funcin a cada columna de la matriz considerada como vector. Si estas funciones
se quieren aplicar a las filas de la matriz basta aplicar dichas funciones a la matriz traspuesta.

15.
B = A'
B = A.'
v = poly(A)
t = trace(A)
[m,n] = size(A)
n = size(A)
nf = size(A,1)
nc = size(A,2)

16.

Funciones que actan sobre matrices


Calcula la traspuesta (conjugada) de la matriz A
Calcula la traspuesta (sin conjugar) de la matriz A
Devuelve un vector v con los coeficientes del polinomio caracterstico de la
matriz cuadrada A
Devuelve la traza t (suma de los elementos de la diagonal) de una matriz
cuadrada A
Devuelve el nmero de filas m y de columnas n de una matriz rectangular A
Devuelve el tamao de una matriz cuadrada A
Devuelve el nmero de filas de A
Devuelve el nmero de columnas de A

Funciones matriciales especiales

expm(A) Si A=XDX', expm(A) = X*diag(exp(diag(D)))*X'


sqrtm(A) Devuelve una matriz que multiplicada por s misma da la matriz A
logm() Es la funcin recproca de expm(A)
Est definida si A es cuadrada y n un nmero real. Si n es entero, el resultado se
A^n
calcula por multiplicaciones sucesivas. Si n es real, el resultado se calcula como:
A^n=X*D.^n*X' siendo [X,D]=eig(A)

17.
Otras funciones que actan sobre vectores y
matrices
Comprueba si el nombre var existe como variable, funcin, directorio, fichero,
etc.
Chequea si hay valores NaN en A, devolviendo una matriz de unos y ceros del
isnan(A)
mismo tamao que A.
Chequea si hay valores Inf en A, devolviendo una matriz de unos y ceros del
isinf(A)
mismo tamao que A.
isfinite(A) Chequea si los valores de A son finitos.
isempty(A) Chequea si un vector o matriz est vaco o tiene tamao nulo.
ischar()
Chequea si una variable es una cadena de caracteres (string).
isglobal() Chequea si una variable es global.
Chequea si una matriz es dispersa (sparse, es decir, con un gran nmero de
issparse()
elementos cero).
exist('var')

GRFICOS BIDIMENSIONALES
18.

Funciones grficas 2D elementales

Crea un grfico a partir de vectores y/o columnas de matrices, con escalas


lineales sobre ambos ejes
Dibuja dos funciones con dos escalas diferentes para las ordenadas, una a la
plotyy()
derecha y otra a la izquierda de la figura.
loglog()
dem con escala logartmica en ambos ejes
semilogx() dem con escala lineal en el eje de ordenadas y logartmica en el eje de abscisas
semilogy() dem con escala lineal en el eje de abscisas y logartmica en el eje de ordenadas
plot()

title('ttulo')
xlabel('tal')
ylabel('cual')

Aade un ttulo al dibujo


Aade una etiqueta al eje de abscisas. Con xlabel off desaparece
Aade una etiqueta al eje de ordenadas. Con ylabel off desaparece
Introduce 'texto' en el lugar especificado por las coordenadas x e y. Si x e y
son vectores, el texto se repite por cada par de elementos. Si texto es
text(x,y,'texto')
tambin un vector de cadenas de texto de la misma dimensin, cada
elemento se escribe en las coordenadas correspondientes
Introduce texto con ayuda del ratn: el cursor cambia de forma y se espera
gtext('texto')
un clic para introducir el texto en esa posicin
Define rtulos para las distintas lneas o ejes utilizados en la figura. Para ms
legend()
detalle, consultar el Help
Activa la inclusin de una cuadrcula en el dibujo. Con grid off desaparece la
grid
cuadrcula

19.

Funcin PLOT

Dibuja una lnea por cada columna de A en ordenadas, frente al ndice de los
elementos en abscisas
Dibuja las columnas (o filas) de A en ordenadas frente al vector x en abscisas.
Las dimensiones de A y x deben ser coherentes: si la matriz A es cuadrada se
plot(x,A)
dibujan las columnas, pero si no lo es y la dimensin de las filas coincide con la
de x, se dibujan las filas
Anlogo al anterior, pero dibujando las columnas (o filas) de A en abscisas,
plot(A,x)
frente al valor de x en ordenadas
Dibuja las columnas de B en ordenadas frente a las columnas de A en abscisas,
plot(A,B)
dos a dos. Las dimensiones deben coincidir
Anlogo al anterior para cada par de matrices. Las dimensiones de cada par
plot(A,B,C,D)
deben coincidir, aunque pueden ser diferentes de las dimensiones de los
dems pares
plot(A)

20.
Estilos de lnea y marcadores de la funcin
PLOT

Tambin es posible aadir en la funcin plot algunos especificadores de lnea que controlan el
espesor de la lnea, el tamao de los marcadores, etc. Considrese el siguiente ejemplo:
Plot (x,y,'-.rs', 'LineWidth',4, 'MarkerEdgeColor','k',
'MarkerFaceColor', 'g',...'MarkerSize',10)

21.

Comando SUBPLOT

Una ventana grfica se puede dividir en m particiones horizontales y n verticales, con objeto
de representar mltiples grficos en ella. Cada una de estas subventanas tiene sus propios
ejes, aunque otras propiedades son comunes a toda la figura. La forma general de este
comando es:
>> subplot(m,n,i)
donde m y n son el nmero de subdivisiones en filas y columnas, e i es la subdivisin que se
convierte en activa. Las subdivisiones se numeran consecutivamente empezando por las de la
primera fila, siguiendo por las de la segunda, etc. Por ejemplo, la siguiente secuencia de
comandos genera cuatro grficos en la misma ventana:
>>
>>
>>
>>
>>

y=sin(x); z=cos(x); w=exp(-x*.1).*y; v=y.*z;


subplot(2,2,1), plot(x,y)
subplot(2,2,2), plot(x,z)
subplot(2,2,3), plot(x,w)
subplot(2,2,4), plot(x,v)

Se puede practicar con este ejemplo aadiendo ttulos a cada subplot, as como rtulos para
los ejes.
Se puede intentar tambin cambiar los tipos de lnea. Para volver a la opcin por defecto basta
teclear el comando:
>> subplot(1,1,1)

22.

Funcin AXIS()

Tambin en este punto MATLAB tiene sus opciones por defecto, que en algunas ocasiones
puede interesar cambiar.
El comando bsico es el comando axis. Por defecto, MATLAB ajusta la escala de cada uno de
los ejes de modo que vare entre el mnimo y el mximo valor de los vectores a representar.
Este es el llamado modo "auto", o modo automtico. Para definir de modo explcito los valores
mximo y mnimo segn cada eje, se utiliza el comando:
axis([xmin, xmax, ymin, ymax])
Mientras que
axis('auto')devuelve el escalado de los ejes al valor por defecto o automtico.
Otros posibles usos de este comando son los siguientes:
v=axis
axis('ij')
axis('xy')
axis('auto x')
axis('auto
xz')

Devuelve un vector v con los valores [xmin, xmax, ymin, ymax]


Utiliza ejes de pantalla, con el origen en la esquina superior izda. y el eje j en
direccin vertical descendente
Utiliza ejes cartesianos normales, con el origen en la esquina inferior izda. y el
eje y vertical ascendente
Utiliza el escalado automtico slo en direccin x
Utiliza el escalado automtico slo en direcciones x, z

Mantiene los ejes en sus actuales valores, de cara a posibles nuevas grficas
aadidas con hold on
axis('tight') Establece los mismos lmites para los ejes que para los datos
axis('equal') El escalado es igual en ambos ejes
axis('square') La ventana ser cuadrada
La ventana tendr las proporciones de la imagen que se desea representar en
axis('image') ella (por ejemplo la de una imagen bitmap que se desee importar) y el
escalado de los ejes ser coherente con dicha imagen
axis('normal') Elimina las restricciones introducidas por 'equal' y 'square'
axis('off')
Elimina las etiquetas, los nmeros y los ejes
axis('on')
Restituye las etiquetas, los nmeros y los ejes
Permiten modificar selectivamente los valores mximo y mnimo de los ejes
XLim, YLim
en las direcciones x e y.
axis(axis)

23.

Funcin FIGURE

Si se llama a la funcin figure sin argumentos, se crea una nueva ventana grfica con el
nmero consecutivo que le corresponda. El valor de retorno es dicho nmero.
Por otra parte, el comando figure(n) hace que la ventana n pase a ser la ventana o figura
activa. Si dicha ventana no existe, se crea una nueva ventana con el nmero consecutivo que le
corresponda (que se puede obtener como valor de retorno del comando).
La funcin close cierra la figura activa, mientras que close(n) cierra la ventana o figura nmero
n.

24.
bar()
barh()
bar3()
bar3h()
pie()
pie3()

Otras funciones grficas 2-D


Crea diagramas de barras
Diagramas de barras horizontales
Diagramas de barras con aspecto 3-D
Diagramas de barras horizontales con aspecto 3-D
Grficos con forma de tarta
Grficos con forma de tarta y aspecto 3-D

area()

Similar plot(), pero rellenando en ordenadas de 0 a y

stairs()

Funcin anloga a bar() sin lneas internas

errorbar() Representa sobre una grfica mediante barras valores de errores


compass() Dibuja los elementos de un vector complejo como un conjunto de vectores
partiendo de un origen comn

feather()
hist()
rose()
quiver()

25.

Dibuja los elementos de un vector complejo como un conjunto de vectores


partiendo de orgenes uniformemente espaciados sobre el eje de abscisas
Dibuja histogramas de un vector
Histograma de ngulos (en radianes)
Dibujo de campos vectoriales como conjunto de vectores

Extraer datos de un bloc de notas

En ocasiones tendremos que trabajar con datos almacenados en un Excel. Copiaremos todos
los valores de la tabla Excel y los pegaremos en un bloc de notas. Para introducir estos datos
en Matlab debemos sustituir las comas por puntos en el block de notas ya que Matlab no

trabaja con comas, para ello haremos click en reemplazar, situado en la pestaa edicin del
bloc de notas.

Reemplazo de comas por puntos


Tras ello, y para introducir los valores en una matriz, usaremos la funcin load
Ejemplo
Bass=load('Bass.txt')

El bloc de notas deber estar en el directorio con el que estamos trabajando.


Si queremos, por ejemplo, para representar la primera columna frente a la segunda columna,
en escala semilogaritmica:
semilogx(Bass(:,1),Bass(:,2));

Si colocamos : en el ndice de las columnas, esto significa todas las columnas. Si colocamos
:en el ndice de las filas, esto significa todas las filas. Con esto, las operaciones se vuelven
muy sencillas, no teniendo que recurrir a bucles.

You might also like