i want to read only non zero numerical from the matrix

a=[0 0 0 0 0 0 0 0 0 0 1 2 3 4 5 6 7 0 0 0]
a(1,11:17)
then it will display
1 2 3 4 5 6 7
is there any code to read non zero numerical automatically

 採用された回答

David
David 2012 年 1 月 19 日

0 投票

To get the non-zero elements
a(a~=0)
Be careful with the comparison of floats/doubles (some zeros may just be very very small (if there are the result of a calculation) so it may be best to have a compare function:
tol = 1000*sqrt(eps);
cmpTol = @(x) abs(x)<tol;
and do something like
a(~cmpTol(a))

タグ

質問済み:

2012 年 1 月 19 日

Community Treasure Hunt

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

Start Hunting!

Translated by