Extracting the first three minimum elements from a vector v and assign them to h then letter remove the elements from vector v and used the index to removed some element in vector w.

v=[3,6,1,7,9,4];
w=[3,2,7,1,9,5];
[x,y]=sort(v);
h=x(1:3);
i=1;
while i<=numel(v)
if v(i)==h(i) % here h will be less than the elements in v, so it give me error
v(i)=[];
else
v(i)=v(i);
end
i=i+1;
trying to take the first three minimum elements in vector v and assigned the values to h, and after then, remove those elements from v, and use index of the removed elements of v, to remove some elements in w.
e.g v=

6 comentarios

Can you show us what output you are expecting?
Attempted to access h(4); index out of bounds because numel(h)=3.
Error in Untitled (line 7) if v(i)==h(i)
Why you are running a while loop?
k = sort(v) ;
h = k(1:3) ;
That's enough eh..
I also want to remove the elements I vector v.
YOu want to remove those minimum three elements from v?

Iniciar sesión para comentar.

 Respuesta aceptada

v(h)=[];
w(h)=[];
thanks @KSSV, I got it. I don't have to use the while loop.

Más respuestas (1)

v=[3,6,1,7,9,4];
[k,idx] = sort(v) ;
h = k(1:3) ;
%%Remove from k
k(1:3) = []
%%Remove from v
v(idx(1:3))=[]

Categorías

Más información sobre Matrices and Arrays en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 6 de Dic. de 2017

Respondida:

el 6 de Dic. de 2017

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by