Reduce dimension of a vector

1 visualización (últimos 30 días)
Salvatore Turino
Salvatore Turino el 23 de En. de 2012
Hello at the beginning of my code i declare a vector
riga_save=save_rig;
where save_rig is 1x14. after some works on the indices at the end of my code i find this:
riga_save =
2 3 9 10 11 15 0 0 0 0 0 0 0 0
in my code i go to put all zeros in riga_save at the beginning and then i go to replace these zeros with some indices of save_rig...so at the end i find all these 000 given by the oversized, since the vector save_rig is bigger then riga_save. how can i remove the 0 0 0 given by the oversized?
thank you

Respuesta aceptada

Salvatore Turino
Salvatore Turino el 23 de En. de 2012
i've done this:
app_save=riga_save;
clear riga_save
for i=1:length(colonna_save)
riga_save(i)=app_save(i);
end
i want to know if there is something with more efficiency.

Más respuestas (1)

Andrew Newell
Andrew Newell el 23 de En. de 2012
I would use find inside riga_save to extract the nonzero indices.
It may be more efficient, though, to have save_rig return logical indices (see Logical indexing).
However, to answer the question you actually asked, you can do this:
riga_save = riga_save(riga_save>0);
This is also an example of logical indexing!
(EDITED to correct answer)
  1 comentario
Salvatore Turino
Salvatore Turino el 23 de En. de 2012
it doesn't work. i need to remove the 0.

Iniciar sesión para comentar.

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by