PDF de programación - Introducción a Matlab 6.1 (2ª Parte)

Imágen de pdf Introducción a Matlab 6.1 (2ª Parte)

Introducción a Matlab 6.1 (2ª Parte)gráfica de visualizaciones

Publicado el 13 de Enero del 2021
413 visualizaciones desde el 13 de Enero del 2021
113,9 KB
13 paginas
Creado hace 21a (30/09/2002)
ETSII-UPM

Introducción a Matlab 6.1

(2ª Parte)

Matemáticas de la Especialidad (Mecánica-Máquinas)

Madrid, 1 de octubre de 2002

Javier García de Jalón
ETSII - Departamento de Matemática Aplicada
a la Ingeniería Industrial

Cadenas de caracteres (strings)
q Las cadenas de caracteres

Se definen entre apóstrofos: 'cadena', 'mi casa', 'ni ''idea'''
Los caracteres se guardan en un vector (2 bytes por carácter)

ETSII-UPM

q Conversión entre caracteres y números

La función double(str) convierte una cadena en un vector de números ASCII
La función char(vect) convierte un vector de números en cadena de caracteres

q Matrices de caracteres

Cada fila es una cadena de caracteres
Todas las filas tienen el mismo número de elementos (se completan con

blancos las filas con menos caracteres)

Ejemplo: matchar=char('más', 'madera');

q Funciones para cadenas de caracteres

Conversión: double(cad), char(vect), char(c1,c2,c3), int2str(n), num2str(d),

str2double(s), cellstr(str)

Comparación: strcmp(c1,c2), strcmpi(c1,c2), strncmp(c1,c2,n), c1==c2
Concatenación: frase=['str1', ' ', 'str2', ' ', 'str3'];
Búsqueda y sustitución: findstr(c1,c2), strmatch(frs, str), strrep(c1,c2,c3)
Descomposición de una frase en palabras: [p1,resto]=strtok(str)

1

Hiper-matrices
q Matrices con más de dos dimensiones

La última dimensión representa la “profundidad”

de la matriz

Se pueden utilizar para almacenar varias matrices
distintas pero con el mismo tamaño y significado
La función cat(d, A, B) sirva para concatenar dos

matrices iguales según la dimensión "d"

i

q Ejemplo:

HM[:,:,1]=rand(3);
HM[:,:,2]=eye(3);

ETSII-UPM

A(i,j,k)

k

j

q Funciones de Matlab que permiten trabajar con hiper-matrices

Todas las funciones que actúan sobre escalares se aplican elemento a elemento
Las funciones que actúan sobre vectores (sum, max, ...) se aplican según la

primera dimensión, resultando una matriz de una dimensión menos

Las funciones matriciales de Álgebra Lineal (inv, det, ...) se aplican sólo a sub-

matrices previamente extraídas de la hiper-matriz

Otras funciones: size, ndims, squeeze, permute, ipermute, ... (ver en Help)

ETSII-UPM

Matrices dispersas (sparse)
q Matrices dispersas o sparse

Son matrices que tienen la mayor parte

de sus elementos cero

Sólo se almacenan y sólo se opera con

los elementos distintos de cero

q Almacenamiento de matrices sparse

Se almacena un vector con los nnz

valores distintos de cero

Se almacena otro vector con los nnz

índices de fila de cada valor

Se almacenan en un tercer vector las n posiciones en los vectores anteriores de

los primeros elementos distintos de cero de cada columna

Ejemplo: con load west0479; se carga en memoria un ejemplo de una matriz
de 479×479 con sólo 1887 elementos distintos de cero (ver con spy(west0479))
Las funciones S=sparse(A); y A=full(S); permiten pasar de matrices llenas a

dispersas y viceversa

n=128; f=0.9; A=rand(n); A(find(A>f))=1; A(find(A<=f))=0; S=sparse(A);

2

Matrices dispersas (2)
q Funciones para crear matrices sparse

ETSII-UPM

speye(n), sprand(n,m), sprandn(n,m), sprandsym(n), spdiags(A)
sparse(A), sparse(m,n), sparse(i,j,val,m,n)

q Otras funciones para operar con matrices sparse

full(S), find(S), [i,j,val]=find(S)
nnz(S), nonzeros(S), spy(S), issparse(S)
spfun('funName',S)
Reordenar los elementos: p=colmmd(S), p=symmmd(S), p=symrcm(S)

q Funciones de Álgebra Lineal

Se puede utilizar el operador \ igual que para matrices llenas
[L,U,P]=lu(S), [L,u]=luinc(S), L=chol(S), L=cholinc(S), [Q,R]=qr(S),

[V,D]=eigs(S), svds(S), normest(S,tol), condest(S), sprank(S)

q Criterios prácticos para trabajar con matrices sparse

Las funciones y operadores de Matlab tienden a conservar el carácter de los

argumentos —lleno o sparse— de la forma más lógica y razonable

Consultar el Help para una información más detallada

Estructuras (struct)
q Estructuras:

ETSII-UPM

Agrupación de datos de naturaleza diversa bajo un nombre común
Cada uno de esos datos tiene también su propio nombre y genéricamente se

llama campo (field)

q Ejemplo: la estructura alumno tiene como campos numero y nombre

alumno.numero=97894; alumno.nombre='Luis Pérez';
alumno=struct('numero', 97894, 'nombre', 'Luis Pérez');

q Otras características:

Pueden crearse vectores de estructuras:

alumno(50).numero=97894; alumno(50).nombre='Luis Pérez';

Una estructura puede contener otras estructuras (por ejemplo una fecha)
En cualquier momento se puede añadir un nuevo campo a una estructura o

eliminar un campo existente

q Funciones para operar con estructuras

fieldnames(stc)
isstruct(ST), isfield(ST, s), rmfield(ST, s), getfield(ST, s), setfield(ST, s, v)

3

Vectores y/o matrices de celdas (cell arrays)
q Son vectores y/o matrices cuyos elementos pueden ser cada uno de

ETSII-UPM

un tipo de dato diferente

Los elementos de un vector de celdas se definen con llaves { }

vc(1)={[1,2,3]}, vc(2)={['mi nombre']}, vc(3)={rand(3,6)}
vc{1}=[1,2,3], vc{2}=['mi nombre'], vc{3}=rand(3,6)
vc={[1,2,3], 'mi nombre', rand(3,6)}

Es importante que el nombre vc no haya sido utilizado antes (usar clear vc;)

q Funciones para vectores de celdas

cell(m, n), celldisp(ca), cellplot(ca), iscell(ca)
num2cell(x)

q Conversión entre vectores de celdas y estructuras

cell2struct(ca), struct2cell(stc)
ST = cell2struct(vc, {'vector','cadena','matriz'}, 2);
vcc= struct2cell(ST)';

Programación de Matlab
q Ficheros de comandos *.m

ETSII-UPM

Se llaman mediante el nombre del fichero (sin la extensión)
Los comandos se ejecutan secuencialmente como si se introdujeran desde

teclado.

Las variables creadas pertenecen al espacio de trabajo del entorno desde el
que se ejecuta el fichero (no son visibles en las funciones, salvo la que lo ha
llamado)

q Funciones *.m

Una función es una porción de código aislada del resto del programa
Hay funciones propias de Matlab y funciones definidas por el usuario

(funcname.m)

function [valores de retorno]=funcname(lista de argumentos)

La función recibe datos a través de la lista de argumentos y devuelve

resultados a través de los valores de retorno

También puede intercambiar información a través de variables globales,

declaradas como tales tanto en la función como en el programa que la llama
Las variables definidas dentro de la función (y los argumentos) son variables

locales a la función. Cada función tiene su propio espacio de trabajo

4

Funciones definidas por el usuario
q Se definen en ficheros *.m con el mismo nombre que la función

ETSII-UPM

Los valores de retorno deben ser calculados en algún momento antes del fin

del fichero que defina la función

Los argumentos se reciben siempre por valor (si se modifican dentro de la

función, se saca una copia y se modifica la copia)

datos

function [ret1, ret2]=funcname(arg1, arg2, arg3,…)
...

resultados

...

ret1=...

ret2=...

q Ejemplo de llamada: » [i,j]=funcname(A,B+C,H);
q Las funciones de Matlab definidas en ficheros *.m

Admiten número variable de argumentos y de valores de retorno
Las variables nargin y nargout, accesibles dentro de la función, indican el

número de argumentos y valores de retorno con que la función ha sido llamada

varargin y varargout permiten utilizar cell arrays como datos y resultados

Programación en ficheros *.m
q Bifurcaciones if y switch

ETSII-UPM

if condicion
sentencias

end

if condicion 1
sentencias 1

elseif condicion 2

sentencias 2

elseif condicion 3

sentencias 3

else

% opcional

sentencias 4

end

q Bucles for y while (sentencia break)

for i=1:inc:n
sentencias

end

for i=vector
sentencias

end

for i=1:m

for j=1:n

sentencias

end

end

switch expresion

case exp1

sentencias 2

case exp2

sentencias 3

otherwise

% opcional

sentencias 4

end

while condicion

sentencias

end

5

Variables persistentes y variables globales
q Las variables persistentes:

ETSII-UPM

Son variables locales de una función que conservan su valor entre las

sucesivas llamadas a la función (por defecto las variables locales se crean cada
vez)

Las variables persistentes se crean dentro de una función anteponiendo la

palabra persistent

q Las variables globales:

Son variables visibles y utilizables desde el programa principal y desde todas

aquellas funciones que las declaren utilizando la palabra global

Las variables globales se utilizan para compartir información entre una o más
funciones y el programa principal, sin necesidad de pasarlas como argumentos
y/o valores de retorno

Las variables globales son consideradas peligrosas, porque si se produce un

error de programación pueden ser modificadas por quien no debe. Su uso debe
restringirse a los casos imprescindibles

Se les suelen asignar nombres largos y con mayúsculas (VELOCIDAD,
TIEMPO, ...), de modo que sean fácilmente distinguibles de las demás
variables

Gráficos en Matlab
q Matlab tiene capacidad de realizar gráficos 2-D y 3-D
q Los gráficos se abren en ventanas especiales como la mostrada
q Algunos parámetros gráficos pueden ser controlados desde la propia

ETSII-UPM

ventana, por medio de menús, como se ve en la figura

6

Gráficos 2-D
q Función plot()

Su misión principal es dibujar un vector de valores y en ordenadas frente a otro

vector x en abscisas. Ambos vectores tienen el mismo número de elementos

ETSII-UP
  • Links de descarga
http://lwp-l.com/pdf18690

Comentarios de: Introducción a Matlab 6.1 (2ª Parte) (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad