Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Índice
Estructuras Strings
Structs
avanzadas de
Vectores de estructuras
datos
3 4
Las cadenas de caracteres se almacenan en un vector, con un carácter
por elemento. Por ejemplo, la palabra asignatura se almacenará de la
siguiente forma:
Las cadenas de caracteres van siempre entre comillas simples
Al ser un vector, se pueden utilizar las funciones propias de los vectores
>> size(c)
ans =
1 10
>> c(4)
ans = g
5 6
Una matriz de caracteres es una matriz cuyos elementos son caracteres, o bien
una matriz cuyas filas son cadenas de caracteres (esto último es lo más común)
Todas las filas deben tener el mismo número de elementos (las filas más cortas
se completarán con espacios en blanco)
a b c a l g e b r a
s f e c a l c u l o
g y u i n f o r m a t i c a
m = m2 =
alt + 126 = ~ abc algebra
alt + 64 = @ sfe calculo
gyu informatica
7 8
Funciones para manejar cadenas de caracteres (I) Funciones para manejar cadenas de caracteres (II)
Nombre Función Descripción Nombre Función Descripción
double(c ) Convierte en números ASCII cada carácter de la cadena c s = [ s1, s2] Concatena cadenas, añadiendo la segunda a continuación
char(v) Convierte un vector v de números ASCII en una cadena de de la primera
caracteres findstr(c1,c2) ó Devuelve un vector con las posiciones iniciales de todas las
char(c1, c2) Crea una matriz de caracteres, completando con espacios strfind(c1,c2) veces que la cadena más corta aparece en la más larga
en blanco las cadenas más cortas strmatch(cc,c) Devuelve los índices de todos los elementos de la matriz
deblank(c) Elimina los espacios en blanco al final de la cadena de de caracteres cc que empiezan por la cadena c
caracteres c strrep(c1,c2,c3) Sustituye la cadena c2 por c3 cada vez que c2 es
disp(c) Imprime el texto contenido en la variable c encontrada en c1
ischar(c) Detecta si la variable c es una cadena de caracteres [p,r]=strtok(t) Separa una cadena de caracteres t. Devuelve la primera
palabra en p y el resto de la cadena en r
isletter(I) Detecta si un carácter I es una letra del alfabeto
blanks(n) Crea un array de n espacios en blanco
isspace(I) Detecta si un carácter I es un espacio en blanco
sprintf Convierte los valores numéricos en cadenas de caracteres,
strcmp(c1,c2) Comparación de cadenas. Devuelve 1 si son iguales y 0 si de acuerdo con las reglas y formatos de conversión del
no lo son. lenguaje C
strcmpi(c1,c2) Igual que strcmp(c1,c2) pero ignorando si son mayúsculas o
minúsculas
9 10
Es una agrupación lógica de diferentes datos bajo un contenedor común.
• Permiten albergar varias variables en su interior.
Estos datos o variables se llaman miembros o campos de la estructura.
• Por ejemplo, la estructura persona puede tener los campos:
Structs • nombre
• apellido1
• apellido2
• edad
• Otro ejemplo, la estructura complejo puede tener los campos:
• real
• imag
11 12
complejo1.real = 5;
Vectores de
complejo1.imag = 3;
complejo2.real = 1;
complejo2.imag = 2; Hay más orden y dependencia
complejo3.real = 2;
complejo3.imag = 3;
15 16
¿Qué son los vectores de estructuras? ¿Qué son los vectores de estructuras?
Opción 1
Vectores que en cada posición contienen una estructura.
Para insertar los datos:
Al igual que existen vectores de números enteros o reales; se puede
persona(1).nombre = 'Jon'; vComplejos(1).real = 5;
tener vectores con elementos de tipo estructura
persona(1).apellido1 = vComplejos(1).imag = 3;
'Valencia’;
persona(1).apellido1 = vComplejos(2).real = 1;
'Echeverria’; vComplejos(2).imag = 2;
persona(1).edad = 21; …
…
El vector se va creando de forma dinámica, es decir, en tiempo de ejecución.
A medida que se introducen nuevos elementos, el vector aumentará su
tamaño de forma automática.
17 18
for i=1:n
disp(['Complejo' num2str(i) ': '
num2str(vComplejos(i).real) '+'
num2str(vComplejos(i).imag) 'i']);
end
El vector se crea desde el inicio y de esta forma el programa es más eficiente.
19 20
for i=1:n
disp(['Alumno' num2str(i) ': ']);
disp(['Nombre: ' vAlumnos(i).nombre]);
disp(['Teléfono: ' num2str(vAlumnos(i).tel)]);
disp(['Edad: ' num2str(vAlumnos(i).edad)]);
end