Vectores Con Matlab
Vectores Con Matlab
Vectores Con Matlab
5 Vectores en MATLAB
Los vectores son dispositivos para representar y manejar variables que pueden tener varios
componentes de un mismo tipo.
Notación Matemática: xi
Notación MATLAB: x(i)
Para crear un vector fila los componentes deben separarse con espacios o con comas.
Si se desea crear un vector columna, los elementos deben separarse con punto y coma.
También se puede crear un vector asignando valores a sus componentes con el índice:
Longitud de un vector
>> s=sum(v)
s=
42
95
>> m=max(v)
m=
8
>> [m,p]=max(v)
m=
8
p=
7
Nota para pruebas con vectores. Al realizar pruebas con vectores de diferente longitud
conviene borrar de la memoria el vector de la ejecución anterior pues el vector aún mantiene
los elementos de la ejecución anterior. Se sugiere incorporar en el programa o en la ventana de
comandos una instrucción para iniciar el vector en cada prueba insertando el comando clear
con el nombre del vector, o iniciándolo como un vector vacío definiéndolo con la notación [ ]
Todas las variables de los programas son visibles desde fuera del programa, es decir que
están disponibles y pueden usarse desde la ventana de comandos con el nombre con que
fueron creadas.
Se pueden ingresar los datos individualmente y agregarlos al vector (agregar cada dato a la
derecha). (Previamente requiere conocer cuantos datos se leerán)
Asignación individual
Ejemplo. Crear un vector aleatorio agregando cada dato al vector (números de un dígito)
x: vector
n: número de componentes
s: suma de los componentes
Salida
Ingrese vector [7 8 9 12 6]
La suma es
42
x: vector
n: número de componentes
s: suma de los componentes
Salida
Ingrese vector [7 8 9 12 6]
16
x: vector
n: número de componentes
m: el mayor valor
x: vector dato
y: vector resultado
n: número de componentes
%Invertir un vector
x=input('Ingrese vector ');
n=length(x);
y=[ ];
for i = 1:n
y=[x(i),y];
end
disp(y);
Ejemplo. Generar un vector con números aleatorios de dos cifras. Calcular el promedio y
mostrar los elementos mayores al promedio
n: número de componentes
x: vector
p: promedio
Salida
Cantidad de elementos 8
81 90 12 91 63 9 27 54 vector
53.3750 promedio
81 elementos mayores al promedio
90
91
63
54
100
Salida
Otra solución para el ejemplo anterior (vector con números de la secuencia de Ulam)
Salida
x: dato
b: vector que contiene los dígitos en el sistema binario.
Salida
Ingrese un numero 23
10111
Salida
1 2 3 5 7 11 13 17 19
102
Ejemplo. Simule n lanzamientos de un dado. Muestre la cantidad de veces que sale cada
número.
n: dato
d: número obtenido para el dado en cada lanzamiento
c: vector con la cantidad de resultados de cada número del dado
Salida
>> dado
¿cuantas pruebas? 6000
999 988 1016 1007 986 1004
Ejemplo. Simule n lanzamientos de un dado. Muestre la cantidad de veces que sale cada
número.
n: dato
d: número obtenido para el dado en cada lanzamiento
c: vector con la cantidad de resultados de cada número del dado
Ejemplo. Búsqueda en un vector. Escriba un programa que lea desde el teclado un vector y un
número y determine si el valor se encuentra en el vector.
Soluciones incompletas
Salida
>> v=[7,9,6,8,9];
ingrese vector v
ingrese dato para buscar 9
no
si
no
no
si
Salida
>> v=[7,9,6,8,9];
ingrese vector v
ingrese dato para buscar 8
no
104
Solución correcta
Salida
>> v=[7,9,6,8,9];
ingrese vector v
ingrese dato para buscar 8
si
Salida
>> v=[7,9,6,8,9];
ingrese el vector de datos v
ingrese el número para buscar 8
el valor está almacenado en la posición
4
105
>> v=[7,9,6,8,9];
>> e=ismember(8,v)
e= el valor 1 indica que 8 está incluido en v
1
>> [e, p]=ismember(8,v)
e=
1
p=
4 también se puede conocer su posición en v
Ejemplo. Desarrolle un un algoritmo para asignar las parejas para el juego del “amigo secreto”.
Existen n varones numerados del 1 a n, y n mujeres numeradas de n+1 hasta 2n. la asignación
de parejas debe ser aleatoria de tal manera que cada persona pertenezca solamente a una
pareja.
t=[ ];
while length(t)<15
x=fix(rand*25)+1;
if ismember(x,t)==0
t=[t,x];
end
end
disp(t);
Ejemplo. Escriba un programa que lea desde el teclado dos vectores y determine la cantidad
de elementos comunes entre ambos vectores.
Ejemplo. Escriba un programa que lea desde el teclado dos vectores y determine cuales son
los elementos comunes entre ambos vectores.
Ejemplo. Escriba un programa para ordenar en forma ascendente los datos de un vector
usando la función MIN de MATLAB
El algoritmo toma el menor dato del vector X y lo agrega al vector Y, pero además lo elimina del
vector X.
Ejemplo. Escriba un programa para ordenar un vector pero sustituyendo a la función MIN.con
instrucciones
x: vector
n: número de componentes
El algoritmo compara cada dato con el último elemento, cada vez que es mas grande, los
intercambia. Al final, en la última posición quedará el mayor valor.
Ejemplo. Ordenar los datos de un vector con el método de intercambio de elementos. Este
algoritmo extiende la idea del algoritmo anterior
v=[];
x=0;
while x~=4
disp('1) Agregar elemento');
disp('2) Eliminar elemento');
disp('3) Pertenecia de un elemento');
disp('4) Salir');
x=input('Elija una opcion ');
switch x
case 1,
e=input('ingrese elemento ');
if ismember(e,v)==0
v=[v, e];
end
case 2,
e=input('ingrese elemento ');
[z,p]=ismember(e,v);
if z == 1
v(p)=[];
end
case 3;
e=input('ingrese elemento ');
z=ismember(e,v);
disp(z);
end
end
112
6 Cadenas de caracteres
Las aplicaciones computacionales del manejo de cadenas de caracteres son de interés general
y también pueden ser parte de la solución de problemas de ingeniería.
Insertar caracteres
>> x=[x(1:3),'x',x(4:9)]
x=
proxblems
Determinar si una cadena se encuentra en otra cadena. El resultado es un vector con las
posiciones de coincidencia
>> c=’345’;
>> n=str2num(c);
n
= 345
for i=1:5
disp(['dato ', num2str(i)])
end
dato 1
dato 2
dato 3
dato 4
dato 5
El dato debe ser ingresado encerrado entre comillas simples o mediante una variable
previamente asignada con una cadena
Se pueden omitir las comillas al ingresar el dato si se incluye la especificando ‘s’ en input
Ejemplo. Leer una cadena de caracteres y mostrarla con los caracteres puestos en orden
inverso
Salida
>> invertir
ingrese una frase abeurp anu se atse
esta es una prueba
115
Ejemplo. Escribir un programa para determinar si una frase se puede leer de izquierda a
derecha o de derecha a izquierda. Estas frases se denominan “palíndromes”. El programa es
una combinación del algoritmo que elimina espacios en blanco y el algoritmo que invierte una
frase.
Ejemplos: radar, reconocer, la ruta nos aportó otro paso natural, damas oid a dios amad
116
Ejemplo. Leer una frase y determinar cuántas veces contiene a una palabra
Salida
Salida
Ejemplo. Diseñe un esquema para enmascarar una frase colocando los caracteres
alternadamente alrededor del centro.
Codificar el mensaje
Decodificar el mensaje
Ejemplo. Lea nombres que pueden tener diferente longitud y forme una lista. Muestre por cada
nombre, la cantidad de veces que contiene la letra ‘a’
Ejemplo. Lea una lista de nombre, elimine los nombres con 'r'
Salida
>> t=char('maria','juan','pedro','luis')
t=
maria
juan
pedro
luis
>> prueba
ingrese lista t
juan
luis