Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
MATLAB dispone también de ficheros *.p, que son los ficheros *.m pre-
compilados con la función pcode.
pcode
Los
L nombres
b d las
de l funciones
f i d MATLAB no son palabras
de l b reservadas
d d l
del
lenguaje
Cuando se aplican a una matriz actúan sobre cada elemento de la matriz como si
se tratase de un escalar.
escalar
anes
tan(x) tangente
s en radia
asin(x) arco seno
acos(x) arco coseno
atan(x) arco tangente (devuelve un ángulo entre -π/2
π/2 y +π/2)
Argumento
atan2(x) arco tangente (devuelve un ángulo entre -π y +π)
sinh(x) seno hiperbólico
cosh(x) coseno hiperbólico
A
tanh(x) tangente hiperbólica
asinh(x) arco seno hiperbólico
acosh(x) arco coseno hiperbólico
atanh(x) arco tangente hiperbólica
log(x) logaritmo natural
log10(x) logaritmo decimal
exp(x)
p( ) función exponencial
p
sqrt(x) raíz cuadrada
sign(x) devuelve -1 si <0, 0 si =0 y 1 si >0. Aplicada a un número
complejo, devuelve un vector unitario en la misma dirección
rem(x,y) resto de la división (los argumentos no tienen que ser enteros)
mod(x,y) similar a rem (Ver diferencias con el Help)
round(x) redondeo hacia el entero más próximo
fix(x) redondea hacia el entero más próximo a 0
floor(x) valor entero más próximo hacia -∞
ceil(x) valor entero más próximo hacia +∞
gcd(x) máximo común divisor
lcm(x) mínimo común múltiplo
real(x) partes reales
imag(x) partes imaginarias
abs(x) valores absolutos
angle(x) ángulos de fase:
Funciones que actúan sobre vectores
Las siguientes funciones sólo actúan sobre vectores (no sobre matrices, ni sobre
escalares)
l ):
Marices especializadas
compan Companion matrix
gallery Test matrices
hankel Hankel matrix
hilb Hilbert matrix
invhilb Inverse of Hilbert matrix
magic Magic square
pascal Pascal matrix
rosser Classic symmetric eigenvalue test problem
vander Vandermonde matrix
FUNCIONES MATRICIALES ESPECIALES :
[L,U]
[L U] = lu(A) descomposición de Crout (A = LU) de una matriz
matriz.
B = inv(A) calcula la inversa de A. Equivale a B=inv(U)*inv(L)
d = det(A) devuelve el determinante d de la matriz cuadrada A.
E = rref(A) reducción a forma de escalón (mediante la eliminación de Gauss
con pivotamiento por columnas, haciendo ceros también encima
de los pivotes) de una matriz rectangular A
[[E,xc] ( ) reducción a forma de escalón con un vector xc q
, ] = rref(A) que da
información sobre una posible base del espacio de columnas de A
U = chol(A) descomposición de Cholesky de matriz simétrica y positivo-
definida.
c = rcond(A) devuelve una estimación del recíproco de la condición numérica de
la matriz A basada en la norma-1. Si el resultado es próximo a 1 la
matriz A está bien condicionada; si es próximo a 0 no lo está.
[X D] =eig(A) valores propios (diagonal de D) y vectores propios (columnas de X)
[X,D]
de una matriz cuadrada A.
[X,D] = eig(A,B) valores propios (diagonal de D) y vectores propios (columnas de
X) de dos matrices cuadradas A y B (Ax = λBx).
FUNCIONES DE FACTORIZACIÓN Y/O DESCOMPOSICIÓN MATRICIAL
[Q,R]
[Q R] = qr(A) descomposición QR de una matriz rectangular
rectangular.
[Q,R] = qr(A,0) similar a la anterior, pero con Q del mismo tamaño que A, es decir,
sin completar una base ortonormal cuando m>n.
[Q,R,E]
[Q R E]=qr(A)
qr(A) factorización QR con pivotamiento por columnas
columnas. La matriz E es
una matriz de permutación tal que A*E=Q*R. La matriz E se
determina de modo que los elementos de abs(diag(R)) son
decrecientes.
B = null(A) devuelve una base ortonormal del subespacio nulo (kernel, o
conjunto de vectores x tales que Ax = 0) de la matriz rectangular A,
calculada mediante la descomposición de valores singulares. Las
columnas de B son ortonormales: B B'*B=I
B=I.
B = null(A,'r') devuelve una base del subespaco nulo de A calculada a partir de la
forma de escalón reducida. Las columnas de B no son
ortonormales y se obtienen alternativamente dando valor cero a
todas las variables libres excepto a una a la que se da valor unidad.
Q = orth(A) las columnas de Q son una base ortonormal del espacio de
columnas de A. El número de columnas de Q es el rango de A.
Lectura y escritura interactiva de variables
Una forma sencilla de leer variables desde teclado y escribir mensajes
j en la
pantalla del PC, utilizando la función input y disp
disp..
FUNCIÓN INPUT
La función input permite imprimir un mensaje en la línea de comandos de
MATLAB y recuperar como valor de retorno un valor numérico o el resultado de
una expresión tecleada por el usuario.
Sintaxis,
n = input(
input('Teclee
Teclee el número de ecuaciones');
ecuaciones ); “ Da al usuario el mensaje en la
teclado”.
cadena de texto y luego espera la entrada de datos desde el teclado”.
n = input('Teclee
p ( el número de ecuaciones');
);
•Sintaxis
disp(X) muestra la matriz X, sin imprimir el nombre
Ejemplo
>> disp('El
disp('El programa ha terminado')
>> A=rand(4,4);
>> disp(A)
disp(A)
Entrada y salida de datos
Ya se ha visto una forma de realizar la entrada interactiva de datos por medio de la
función input
p y de imprimir
p resultados ppor medio de la función dispp.
disp.
Sin embargo, MATLAB permite intercambiar datos con otras aplicaciones.
Hay varias formas de utilizar los datos de otras aplicaciones –por ejemplo de
– a MATLAB. Se pueden utilizar las siguientes formas:
Excel–
Excel
Ejemplo:
1 >> A=[4.13941637
1. A=[
A=[4 13941637 00.43516229
43516229 -14
14.3809959
3809959 -2
2.22223589
22223589 4
4.16091156
16091156
0.2544432 -15.2615586 -3.22785872 4.30758208 0.26416528 -14.5116303 -
2.07436909 2.25581395 0.29069767 -16.3959466 -2.42359637 2.3372093
0.6627907 -15.6547363 -2.55371351 2.43881602 1.41382517 -9.87890616 -
6.84187243 2.50674757 0.75901242 -15.6607725 -3.02085084 2.73618317
3.61627907 -14.298507 -5.59203684]
Archivos del alumno.
IMPORTAR DATOS DE OTRAS APLICACIONES
1. Se puede crear un fichero *.m con un editor de textos, con lo cual no existen
problemas de edición.
2. Se puede leer un flat file escrito con caracteres ASCII. Un flat file es un fichero
con filas de longitud constante separadas con Intro
Intro,, y varios datos (columnas )
por fila
fil separados
d por blancos
bl i ).
((espacios).
(espacios)
1. También se puede importar datos desde un archivo del tipo texto es decir con
extensión .txt.
txt. Para cargar un archivo de este tipo, se ejecuta
l d datos.txt
load d t t t ell contenido
t id d dell flat fil se almacena
fl t file l en una matriz
t i con
el nombre datos
datos..
Por ejemplo,
ejemplo crear un fichero llamado flat.txt
flat txt que contenga las líneas:
23.456_56.032_67.802
3.749 _
_--98.906_34.910
>>A=load('flat.txt')
Sintaxis
A = TEXTREAD
TEXTREAD('FILENAME')
('FILENAME')
A = TEXTREAD
TEXTREAD('
('FILENAME','',N
FILENAME','',N))
A = TEXTREAD
TEXTREAD('
('FILENAME'
('FILENAME','',param,value
FILENAME' ''
FILENAME','',param,value,
l , ...))
A = TEXTREAD
TEXTREAD('
('FILENAME','',N,param,value
FILENAME','',N,param,value,, ...)
[A,B,C,
A,B,C, ...] = TEXTREAD
TEXTREAD('
('FILENAME','FORMAT
FILENAME','FORMAT')
')
[A,B,C
A,B,C,, ...] = TEXTREAD
TEXTREAD('
('FILENAME','FORMAT',N
FILENAME','FORMAT',N))
[A,B,C,
A,B,C, ...] = TEXTREAD
TEXTREAD('
('FILENAME','FORMAT',param,value
FILENAME','FORMAT',param,value,, ...)
[A,B,C,
A,B,C, ...] = TEXTREAD
TEXTREAD('
('FILENAME','FORMAT',N,param,value
FILENAME','FORMAT',N,param,value,, ...)
T bié se pueden
También d lleer d
datos
t d de un fifichero
h con llas ffunciones
i f
fopen y fread
f d
También se pueden leer datos de hojas de cálculo por ejemplo de Excel, para ello
se utiliza el comando xlsread
xlsread.. El comando p
permite obtener datos y el texto de una
hoja de calculo de un libor de excel
Sintaxis [NUMERIC,TXT,RAW]=xlsread(FILE)
[NUMERIC,TXT,RAW]=XLSREAD(FILE,SHEET,RANGE)
Aquí se lee una hoja especifica y un rango especifico
Sintaxis A = imread(
imread(filename,FMT
filename,FMT))
La cadena de texto FMT, especifica el formato del archivo, que se identifica por su
extensión de archivo estándar. Por ejemplo, "gif“, “bmp”, etc.
Para ver una lista de formatos soportados, con sus extensiones de archivo, utilice
l ffunción
la ió imformats.
i f t
ALMACENAMIENTO DE DATOS EN OTRAS APLICACIONES
Sintaxis xlswrite('filename',
xlswrite ('filename', M (array), sheet, 'range')
Ejemplos
xlswrite(‘prueba',
xlswrite(
xlswrite ((‘prueba',
prueba , [1 2 3 4 5 6 7 8 9 10])
A = xlsread(‘prueba.xls',
xlsread(‘prueba.xls', ‘datos
‘datos’)
’)
A = xlsread
xlsread(
( prueba.xls
xlsread('prueba
('prueba xls', 'datos'
datos ,'A1:B10')
A1:B10 )
xlswrite('prueba.xls', A,'datos','e10:f20')
xlswrite('prueba.xls',
xlswrite('prueba
xlswrite(
xlswrite ('prueba xls', A,
( prueba.xls A 'datos'
datos ,'e10:f20')
e10:f20 )
Por ejemplo,
ejemplo puede utilizar estas funciones para exportar una matriz de MATLAB
como un archivo de texto donde los valores numéricos de las filas y las columnas
estén separadas por un espacio. La función que se utiliza depende de la cantidad
de datos que desea exportar y su formato.
Para exportar un arreglo o una serie de datos como un archivo ASCII delimitado,
se utiliza la función de save, especificando la clasificación -ASCII, o la función
dlmwrite.
La función save es fácil de usar, sin embargo, la función dlmwrite proporciona más
flexibilidad que le permite especificar cualquier carácter como delimitador
flexibilidad, delimitador, y se
pueden exportar los subconjuntos de un arreglo, especificando un rango de valores.
EJEMPLO
>> s='hola
s='hola''
>> save my_data.txt
my data.txt s -ASCII
>> A = [ 1 2 3 4 ; 5 6 7 8 ];
>> dlmwrite ('my_data1.txt', A ,';
,';')
Función archivo
Arreglo Delimitador
Utilizando Función diary
Para exportar pequeñas matrices numéricas o celdas de matrices, se puede utilizar
y crea una copia
la función diary
diary. p literal de la sesión de MATLAB en un archivo en el
disco (excepto los gráficos).
Sintaxis de la función diary
diary ejemplo
diary('filename')
diary off
diary on >> A = [ 1 2 3 4 ; 5 6 7 8 ];
diary filename
>> diary
di d t dt t
datosd.txt
FUNCIONES
dlmread type
M = dlmread(filename) Sintaxis
M = dlmread(filename,
dlmread(filename delimiter)
M = dlmread(filename, delimiter, R, C) type('filename')
M = dlmread(filename, delimiter, range) type filename
Sintaxis de las funciones
Sintaxis de la función save Sintaxis de la función dlmwrite
save dlmwrite(filename,
dl it (fil M)
save filename dlmwrite(filename, M, 'D')
save filename content dlmwrite(filename, M, 'D', R, C)
save filename options dlmwrite(filename, M, 'attrib1', value1, 'attrib2', value2, ...)
save filename content options dl
dlmwrite(filename,
it (fil M '-append')
M, ' d')
save('filename', 'var1', 'var2', ...) dlmwrite(filename, M, '-append', attribute-value list)
Ejemplo 1 : Ejemplo 1 :
>> p = rand(1, 10); >>M rand(4)
>>M= rand(4);
>> q = ones(10); >> dlmwrite('archivoM.txt', M, 'delimiter', '\t', ...
>>save test.mat 'precision', 6)
>> type archivoM.txt
Ejemplo 2
>>savefile = 'test.mat'; Ejemplo 2
>>p = rand(1, 10);
>>q = ones(10); >>dlmwrite('archivoM.txt', M, 'precision', '%.6f', ...
>>save(savefile, 'p', 'q') 'newline' 'pc')
'newline',
>> dlmread archivoM.txt
Ejemplo 3
>>save('C:\alumnos\maestria\ejercic Ejemplo 3
ios curso\feb10.txt', 'p','q','-ASCII')
>> dlmwrite('archivoM.txt', [M*5 M/5], ' ')
>>type feb10.txt >> dlmwrite('myfile.txt', rand(3), '-append', ...
'roffset', 1, 'delimiter', ' ‘)