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

 채택된 답변

Salvatore Turino
Salvatore Turino 2012년 1월 23일

0 개 추천

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.

추가 답변 (1개)

Andrew Newell
Andrew Newell 2012년 1월 23일

0 개 추천

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)

카테고리

도움말 센터 및 File Exchange에서 Logical에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by