Funciones
Matlab provee muchas funciones para realizar operaciones matemáticas y analizar datos. Categorizamos dichas funciones en matriciales, vectoriales y escalares.
Aquí presentamos sólo algunos ejemplos de las funciones que les serán más útiles.
Funciones Escalares
Las funciones escalares aplican operaciones sobre escalares. Son utilizables en matrices, vectores y escalares. En el caso de los dos primeros, la operaciones se realizan elemento por elemento.
Algunos ejemplos:
sin
,cos
: Seno, Cosenoexp
,log
,log10
,abs
: Exponencial, logaritmo natural, logaritmo base 10 Valor absolutosign
: Signo (1 para positivo, -1 para negativo)round
,ceil
,floor
: Redondea a entero
Ver help elfun
para un listado completo de las funciones elementales de Matlab.
a = 2
expa = exp(a)
a =
2
expa =
7.3891
B = [2; 3]
expB = exp(B)
B =
2
3
expB =
7.3891
20.0855
C = rand(2,2)
logC = log(C)
C =
0.8147 0.1270
0.9058 0.9134
logC =
-0.2049 -2.0637
-0.0989 -0.0906
Funciones Vectoriales
Las funciones vectoriales aplican operaciones sobre vectores. Son utilizables en matrices y vectores. En el caso de las primeras, las operaciones se aplican por fila o por columna (por defecto por columna)
Algunos ejemplos:
max
,min
: Máximo, mínimo por columnassort
,sortrows
: Ordenar vector, ordenar filas de una matrizsum
,prod
,cumsum
,cumprod
: Suma, producto, suma acumulada, producto acumuladomean
,std
,median
,var
,cov
: Media, desviación estándar, mediana, varianza, covarianzalength
: Tamaño de un vector
Nota: Las funciones vectoriales, según la operación que realicen tienen diversas opciones y posiblemente más de un output. Ver opciones de cada función usando help funcion
.
v = (1:0.5:4)'
vm = max(v)
v =
1.0000
1.5000
2.0000
2.5000
3.0000
3.5000
4.0000
vm =
4
- Ejemplo de uso de funciones con más de un argumento de la función:
G = rand(5,3)
G =
0.6324 0.9649 0.8003
0.0975 0.1576 0.1419
0.2785 0.9706 0.4218
0.5469 0.9572 0.9157
0.9575 0.4854 0.7922
mGc = mean(G,1)
mGf = mean(G,2) % Usamos el segundo argumento para cambiar orientación.
mGc =
0.5026 0.7071 0.6144
mGf =
0.7992
0.1323
0.5570
0.8066
0.7450
- Ejemplo de una función con más de un output:
R=rand(3,2)
[vmax, pos] = max(R)
R =
0.9595 0.8491
0.6557 0.9340
0.0357 0.6787
vmax =
0.9595 0.9340
pos =
1 2
x = [1 2 3];
cumsum(x)
ans =
1 3 6
- Es siempre útil conocer el tamaño de un vector.
v=rand(1,6)
lv = length(v)
v =
0.7577 0.7431 0.3922 0.6555 0.1712 0.7060
lv =
6
Funciones Matriciales
La funciones matriciales realizan operaciones sobre matrices y sólo son utilizables con este tipo de objetos.
Algunos ejemplos:
size
: Tamaño de la matriz.inv
: Inversa (es mejor utilizar/
).eig
: Autovalores y autovectores.chol
: Descomposición de Choleskydet
: Determinante.kron
: Producto de kronecker.:
Convierte un matriz en un vector columna: vectorizarA(:)
.reshape(A,filas,columnas)
: Cambio de dimensión.diag
: Diagonal de una matriz (además matriz diagonal si el argumento es un vector).triu
,tril
: Matrices triangulares, superior e inferior.
Ejemplos:
A = rand(4,2)
[I, J] = size(A)
A =
0.0318 0.8235
0.2769 0.6948
0.0462 0.3171
0.0971 0.9502
I =
4
J =
2
A = 10+2*randn(3,3)
[AVec, AVal] = eig(A)
A =
6.5770 10.6384 9.9399
9.7955 10.6257 9.6702
9.5171 8.2702 11.2554
AVec =
0.5475 0.8524 -0.1985
0.6029 -0.3642 -0.6219
0.5803 -0.3752 0.7575
AVal =
28.8277 0 0
0 -2.3421 0
0 0 1.9725
F = rand(3,4)
daigF = diag(F)
F =
0.7094 0.6797 0.1190 0.3404
0.7547 0.6551 0.4984 0.5853
0.2760 0.1626 0.9597 0.2238
daigF =
0.7094
0.6551
0.9597
La función reshape
transforma las dimensiones de una matriz de acuerdo a las nuevas dimensiones especificadas.
newF = reshape(F,2,6)
newF =
0.7094 0.2760 0.6551 0.1190 0.9597 0.5853
0.7547 0.6797 0.1626 0.4984 0.3404 0.2238
Para vectorizar una matriz se usa simplemente :
.
F(:)
ans =
0.7094
0.7547
0.2760
0.6797
0.6551
0.1626
0.1190
0.4984
0.9597
0.3404
0.5853
0.2238