Matlab - Ejercicio programacion

 
Vista:

Ejercicio programacion

Publicado por Gonzalo (17 intervenciones) el 21/02/2018 23:27:49
Hola, tengo un ejercicio que dice lo siguiente:
Realizar archivo de funcion, que reciba un vector ordenado de menor a mayor, y un escalar t, y retorne un vector con una componente mas, donde el elemento t este ubicado en la posicion que corresponda para que el nuevo vector permanezca ordenado.

Como hago esto? Agradeceria su ayuda!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Ejercicio programacion

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 22/02/2018 13:38:38
1
2
3
4
5
6
7
8
function V=funcion(v,t)
if nargin==0
    v=sort(round(50*rand(1,10)))
    t=round(30*rand)
end
u=t<v;
pos=find(u==1);
V=[v(1:find(u==1)-1) t v(pos:end)];


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
>> t=round(30*rand),  v=sort(round(50*rand(1,10))), V=funcion(v,t)
 
t =
 
    22
 
 
v =
 
     4    12    29    31    33    33    36    38    45    49
 
 
V =
 
 
     4    12    22    29    31    33    33    36    38    45    49


Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab


http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ejercicio programacion

Publicado por Gonzalo (17 intervenciones) el 22/02/2018 14:49:11
Bien, muchas gracias! Me resulto compleja la parte de la estructura alternativa, segun entendi en el caso de que no haya argumentos de entrada la misma funcion genera un vector, uniformemente distrubuido y ordenado, es asi? Disculpa la ignorancia, recien empiezo con esto y algunas cosas se me ponen dificiles.

Muchisimas gracias desde ya!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Ejercicio programacion

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 22/02/2018 15:07:12
1
2
function V=funcion2(v,t)
V=[v(t>=v) t v(t<v)];


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
>> t=round(30*rand),  v=sort(round(50*rand(1,10))), V=funcion2(v,t)
 
t =
 
     5
 
 
v =
 
     9    16    20    22    29    31    32    36    40    44
 
 
V =
 
     5     9    16    20    22    29    31    32    36    40    44



Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab


http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Daniel
Val: 269
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Ejercicio programacion

Publicado por Daniel (264 intervenciones) el 22/02/2018 21:32:03
Puedes también probar esto:

1
2
3
function res=ordenar(v,t)
res=sort([v,t]);
end

Supongamos que

1
2
v=[1 2 5 6 7 9 12];
t=4;

lo que hace es [v,t] crear un nuevo vector con el valor de t al final del vector v, es decir, [1 2 5 6 7 9 12 4].
Luego el comando sort los ordena (por default de manera ascendente que es lo que vos queres)

Comentanos como te fue

Saludos

Daniel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Ejercicio programacion

Publicado por Gonzalo (17 intervenciones) el 22/02/2018 21:34:15
Genial! Todas las respuestas me sirvieron mucho! Les agradezco! Saludos! Excelentes soluciones!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar