Matlab - vector

   
Vista:

vector

Publicado por ross (6 intervenciones) el 30/10/2007 08:11:58
Buenas!!!

Aquí ando haciendo un programilla y me ha surgido una duda. Tengo un vector con unos números, tengo que coger el numero más grande y hacer una serie de operaciones con ellos. Una vez que lo haga con el mas grande, lo tengo q repetir luego con el siguente mas grande y asi con todos. ¿como puedo hacerlo?

La primera iteracion si q se hacerla max(vector) me da el número mas grande del vector, pero ¿y el resto? Se me ocurria que no se si será posible ir eliminando los puntos con los que ya he hecho las operaciones, en ese caso perderia el vector, no creo que lo necesite mas tarde a si que si hubiera q perderlo...aunque si se pudiera conservar mejor que mejor.

Bueno a ver si alguien me echa una mano, muchas gracias!!!

Ross
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

RE:vector

Publicado por Raúl Santiago (211 intervenciones) el 30/10/2007 08:33:17
Ve creando y borrando dos vectores auxiliares, es decir si tu vector es A podrías hacer algo así:

for....
.....
B=A;
C=max(B);
.....
%operaciones que dices....
....
D=find(B==C);

if D==1
E=B(2:length(B));
else
E(1:D-1)=B(1:D-1);
E(D:length(B)-1)=B(D+1,length(B));
end

clear B

B=E;
clear E

...
end

.....


Revisa un poco que lo hice sobre la marcha, pero sería algo así
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

RE:vector

Publicado por ross (6 intervenciones) el 30/10/2007 09:32:02
bueno... a ver si he entendido lo que quieres explicarme....

1-copio mi vector original (A) y lo llamo B

2-de la copia (B) busco el mayor valor y lo llamo C (asi no toco A a si que lo sigo teniendo intacto)

3-miro que posicion ocupa C en mi vector original A
* si es la primera B va a hora del segundo elemento al final
* si no es la primera B va ahora desde el primero hasta el que sea me salto ese y desde el siguiente hasta el ultimo

4-vuelvo a buscar el maximo en este nuevo E
limpio B y copio E
ahora tengo el nuevo vector en B a si que ya puedo limpiar E

5-este nuevo máximo lo busco en el vector original A y con la funcion find obtengo la posicion


uffff... menudo lio!!!!! voy a ver que tal se me da.....

Muchas gracias
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

RE:vector

Publicado por Raúl Santiago (211 intervenciones) el 31/10/2007 08:51:23
Exacto, esa es la idea, solo que al final en 5, no lo buscas en A, sino siempre en el nuevo B

Saludos
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

RE:vector

Publicado por Diego (1 intervención) el 13/11/2007 03:32:21
Viejo ross muchas gracias...ese detallito del find me ayudo bastante....
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