chop doesn't chop very small numbers
4 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Alec Poulin
il 1 Ott 2018
Modificato: Alec Poulin
il 2 Ott 2018
I have a small number, say 1e-14, and I want to chop it to three decimals. In this case, it should give 0. Yet:
>> chop(1e-14, 3) ans = 1.0000e-14
What is going on?
3 Commenti
Star Strider
il 1 Ott 2018
The only reference I can find on an InterWeb search is the Wolfram function Chop—Wolfram Language Documentation (link).
I cannot find any documentation for a function of that exact name in MATLAB in a similar search.
Risposta accettata
Steven Lord
il 1 Ott 2018
I believe chop is an old function from Control System Toolbox. I recommend using round instead. The default behavior of round is to round to N decimals but you can also use it to round to N significant digits (which is what chop(X, N) does.)
>> x = 1e-14;
>> round(x, 3)
ans =
0
>> round(x, 3, 'significant')
ans =
1.0000e-14
0 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Search Path in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!