Mauricio Tejada
ILADES - Universidad Alberto Hurtado
Agosto 2017
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.
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 enteroVer 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
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 vectorNota: 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
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
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
v=rand(1,6)
lv = length(v)
v = 0.7577 0.7431 0.3922 0.6555 0.1712 0.7060 lv = 6
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: vectorizar A(:)
.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
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
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