round numeric 0
    11 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
Hi everyone! I have a matrix like this:
   A=[ 1 , .3*10^-8 , .2*10^-8 , .2*10^-8;
       . 3*10^-8; 1; .2*10^-8;
       .2*10^-8, .2*10^-8, 1];
I want 0 (real or integer) where i have a very very very small value. How can I do it?
I know I can use logical mask
A(A<10^-7=0)
but i'm looking for a matlab function that can do automatically. This is a typical numeric problem...
Thanks a lot for you answer.
Pippo
0 Kommentare
Akzeptierte Antwort
  Andreas Goser
    
 am 17 Jan. 2012
        This is actually done automatically if it is very very very small. But it looks the veryveryvery is different for you. The
eps
Function return what MATLAB sees as small enough to be rounded to zero.
Besides your own suggestion (probably think also of negative small values, you may use all kinds of rounding and formatting like
round
sprintf
depending on your needs.
0 Kommentare
Weitere Antworten (1)
  Jaap
      
 am 17 Jan. 2012
        your best option:
A(A<small_value) = 0
you can also try:
A = A(bsxfun(@lt,A,1E-7))
I doubt its quicker.
Siehe auch
Kategorien
				Mehr zu Logical finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!